Selenium 如何复用浏览器【解决扫码登录等问题】
Selenium中复用已经打开的浏览器进行自动化测试,可以辅助我们解决某些登录需要扫二维码之后,才能进行的操作
如果是使用的谷歌Chrome浏览器,那需要做哪些准备操作呢?往下看
1、windows和Mac上使用命令启动一个Debug监听端口的浏览器
windows上命令如下:
chrome --remote-debugging-port=9222
Mac上命令如下:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
如果已经把谷歌浏览器的路径加入到环境变量中,可以使用
Google\ Chrome --remote-debugging-port=9222
来启动,启动后的终端界面如下:
2、启动好浏览器之后,只是做好了第一步,那在代码中,我们该怎么写呢,接着往下看
在测试类的setup方法中,我们实例化一个Options()对象,配置Options()对象的debugger_address
接着创建一个driver,并使用他的options参数,将Options()对象传入进去
之后,我们就可以在启动的浏览器上运行我们的测试代码了。
如果是在pageobject设计模式下,就在basepage基础页面对象初始化 时,将Options对象创建,配置调试端口
2021-6-19 看资料发现解决扫码登录还有一个新的方法,待补充【通过获取当前浏览器cookie的方式】
1、以企业微信的后台管理登录为例,使用新的浏览器,打开登录扫码页面,强制等待10秒手动完成扫码,扫码进入管理后台
2、登录后,在代码中使用driver返回当前页面的cookies值,并保存为json文件
3、后续的测试用例,可以使用新保存的cookie,添加在driver中即可