赞
踩
我们做selenium UI自动化测试时,每次都需要启动浏览器、用例运行结束后再关闭浏览器,浏览器启动相当地耗费时间,在本机运行用例的话还得放开双手,可以使用chrome的headless模式,让浏览器在后台运行,不需要加载样式和渲染,也可以让自动化测试更稳定。
先看一下无头浏览器的运行效果
dir c:\chrome.exe /s /b
chrome.exe --headless --remote-debugging-port=9222 https://www.baidu.com
这样无头模式的chrome就启动完成了,可以访问端口验证一下
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 添加浏览器参数
chrom_options = Options()
chrom_options.add_argument('--headless')
ch_options = Options()
ch_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options= ch_options)
# 打开百度试一下
driver.get("https://www.baidu.com")
time.sleep(3)
print(driver.title)
driver.quit()
总结:headless模式只需要添加Options即可
在测试脚本里写死参数的话不灵活,可以把headless配置为参数,每次运行测试用例时,通过参数决定是否需要启动headless模式
def pytest_addoption(parser):
"""定义命令行参数"""
parser.addoption(
"--headless", action = "store",
default = "no", help = "set headless option yes or no"
)
headless = request.config.getoption("--headless")
运行pytest命令时即可通过–headless参数控制是否启用无头模式
> pytest --headless=yes
在本机上运行时,打开浏览器比较方便调试,上传到Linux服务器后则设置为headless模式比较好。
只需要把ch_options.add_argument(’–headless’)的判断条件加上当前系统是否为linux即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。