一、那些情况下需要复用浏览器
1.当运行 selenium 自动化时,要求已经登录才能才做。这个时候我们可以提前登录,运行脚本的时候复用已经打开的浏览器。
2.当调试了某个步骤很多的测试用例,前面N-1步已经成功,只需调试第N步。如果从头开始运行脚本,耗时过多,这时我们可以直接复用浏览器只操作第N步。
复用浏览器的特点:
webdriver启动时将不再创建新的浏览器窗口 将运用已打开的浏览器的当前页面,对元素的进行操作 。
二、复用浏览器前的设置
1.把Chrome配置到环境变量PATH里面
方法:找到浏览器图标,右键->属性,把“目标”里面chrome.exe前面的路径配置到PATH里面
2.在通过命令启动远程调试的chrome之前,需要关闭chrome有关的进程,除了chrome浏览器之外,还有chrome后台进程、浏览器插件等
注意:chrome设置-高级-系统,里面有一项设置可以关闭掉再试一下,能解决不少后台进程问题
3.启动命令(需要复用的网页一定要放在最前面)
Windows/Linux命令为:
chrome --remote-debugging-port=9222 (9222为端口号,可换成任意未被占用的端口)
Mac命令为:
Google\ Chrome --remote-debugging-port=9222 (9222为端口号,可换成任意未被占用的端口) (注意命令中间的反斜线)
4.访问浏览器 http://localhost:9222/查看浏览器是否启动,出现类似以下界面表示启动成功
文章来源:https://www.toymoban.com/news/detail-406483.html
三、复用浏览器的代码
1.定义一个Chrome的选项
chrome_options = Options()
2.设置Chrome的复用地址(复用之前一定要通过命令行启动浏览器:chrome --remote-debugging-port=9222)
chrome_options.debugger_address = “127.0.0.1:9222”
3.创建Chrome复用对象
self.driver = webdriver.Chrome(options=chrome_options)文章来源地址https://www.toymoban.com/news/detail-406483.html
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class TestReuse:
def setup(self):
chrome_options = Options()
# 和浏览器打开的调试端口进行通信,浏览器使用chrome --remote-debugging-port=9222 开启调试
chrome_options.debugger_address = "127.0.0.1:9222"
self.driver = webdriver.Chrome(options=chrome_options)
def test_chrome_reuse(self):
# 使用已经打开的浏览器(已经成功登录),打开百度首页页,然后进行和用户有关的操作
self.driver.get("https://www.baidu.com/")
# 点击用户图标,进入个人中心
self.driver.find_element_by_class_name("s-top-img-wrapper").click()
sleep(5)
到了这里,关于Chrome浏览器的复用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!