playwright连接已打开浏览器并进行操作

137 阅读1分钟

在使用playwright访问部分网站时,有时候会遇到网站安全级别较高,比如验证码登录等操作,我们无法使用自动化登录,所以我们需要先手动登录网站,绕过登录操作,然后让playwright继续在你已经打开的浏览器上操作。以下是具体的操作步骤:

1.将浏览器添加到[环境变量]

右键 Chrome 浏览器桌面图标,选择“属性”,找到 chrome.exe 的安装路径

image.png

复制地址添加到环境变量Path下:

image.png

  1. 在[命令窗口]启动浏览器

打开cmd命令窗口,输入命令

D:\ProgramFilesGreen\Chrome\Chrome107.0.5304.122\App\chrome.exe --remote-debugging-port=12345 --user-data-dir="D:\playwright_chrome"

启动chrome浏览器,执行后会启动chrome浏览器。

--remote-debugging-port 是指定运行端口,只要没被占用就行

--user-data-dir 指定运行浏览器的运行数据,新建一个干净目录,不影响系统原来的数据

image.png

参数配置

在启动浏览器的时候,我们还可以带上一些其它参数

--incognito 隐私模式打开

-–start-maximized:窗口最大化

--new-window:直接打开网址

例如,用隐私模式打开百度网站,进入到文件夹cmd之后操作

D:\ProgramFilesGreen\Chrome\Chrome107.0.5304.122\App\chrome.exe --remote-debugging-port=12345 --incognito --start-maximized --user-data-dir="D:\demo" --new-window http://www.baidu.com

2. ## 使用playwright接管已有浏览器

可以使用connect_over_cdp()方法接管前面已经打开的浏览器,获取到context 上下文,通过上下文再获取到page对象

with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp('http://localhost:12345/')
        # 获取page对象
        page = browser.contexts[0].pages[0]

后面的操作,就跟操作page方法一样了。