在使用playwright访问部分网站时,有时候会遇到网站安全级别较高,比如验证码登录等操作,我们无法使用自动化登录,所以我们需要先手动登录网站,绕过登录操作,然后让playwright继续在你已经打开的浏览器上操作。以下是具体的操作步骤:
1.将浏览器添加到[环境变量]
右键 Chrome 浏览器桌面图标,选择“属性”,找到 chrome.exe 的安装路径
复制地址添加到环境变量Path下:
-
在[命令窗口]启动浏览器
打开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 指定运行浏览器的运行数据,新建一个干净目录,不影响系统原来的数据
参数配置
在启动浏览器的时候,我们还可以带上一些其它参数
--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方法一样了。