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对象创建,配置调试端口

image


2021-6-19 看资料发现解决扫码登录还有一个新的方法,待补充【通过获取当前浏览器cookie的方式】

1、以企业微信的后台管理登录为例,使用新的浏览器,打开登录扫码页面,强制等待10秒手动完成扫码,扫码进入管理后台

image
image

2、登录后,在代码中使用driver返回当前页面的cookies值,并保存为json文件

image
image

3、后续的测试用例,可以使用新保存的cookie,添加在driver中即可

image
image

posted @ 2020-08-19 21:32  Hei蛋炒饭  阅读(3540)  评论(0编辑  收藏  举报