谷歌浏览器脚本调试 selenium复用浏览器进行调试操作如何去做
前置准备
我们的需求是要调试浏览器的某个页面进行某些操作,但是我们要求是操作当前已经打开的某个页面,在当前页面直接执行程序运行 selenium 脚本,这个时候可以用到复用浏览器的方法。
以 chrome 浏览器为例,我们需要:
步骤一
执行谷歌调试命令
在执行之前我们需要把所有的 chrome 都关闭,然后 cmd 执行如下:
# 谷歌以调试模式启动
chrome --remote-debugging-port=9222
1
2
如果谷歌可执行文件设置了环境变量,这里就可以直接执行了卡盟,否则要进入相关文件中再执行,同时要确保 9222 端口没有被占用。
步骤二
手动点击页面
我们手动点击刚才以调试模式打开的谷歌浏览器,然后我们手动进入我们想进入的页面,不关闭它。
步骤三
添加调试代码并运行
打开我们的 IDEA
在驱动启动的地方,需要添加这样的代码表示驱动设置为调试的属性,并且通过 9222 端口传输信息。
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("debuggerAddress", 127.0.0.1:9222);
WebDriver driver = new ChromeDriver(options);1
2
3
然后我们运行测试,会发现,驱动执行并且是从当前谷歌浏览器页面直接操作,他没有重新打开一个浏览器。
可能遇到的问题
1.首先要说明的是注意我们通过命令打开调试的谷歌浏览器,其他的谷歌浏览器是要关闭的,但是火狐或者 IE 等管不管闭不影响。
2.我们还要注意端口不要被占用了!可以通过如下命令检查端口占用情况,若有占用,我们拿到最右边的 pid 号在任务管理器中去手动关闭进程就行了,我们只用关注第二列的端口表示本地不是外部。
netstat -aon | findstr "9222"
1
3.如果遇到selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:9222这个错误基本就是你的谷歌浏览器又升级了,你要下载新的驱动了
适用的场景
有一些页面执行代码很难跑到那个页面,我们就可以通过谷歌调试,先手动到那个页面,再用代码操作当前页面即可实际上来讲我觉得用处不大谷歌浏览器脚本调试,一般我们跑代码到那个页面,打个断点或者加个延时就行,这个复用操作个人感觉还弄麻烦了谷歌浏览器脚本调试,不过对于一些无法用代码跑到的页面,想要获取其中的东西,用这个复用的方法倒是有用的
添加小唐老师微信免费领取【Python入门视频一份】
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!