使用headless 状态会导致窗口默认大小为0x0,并且处于Minimized状态,启动后可能会造成部分元素无法被点击等异常。
补充说明:
options.add_argument('--headless')
# 浏览器不提供可视化页面。linux下如果系统不支持可视化不加这条会启动失败
# Windows下通过jenkins启动自动化脚本,不使用headless也可能会启动失败
解决办法:在启动Driver之前运行代码添加下面的参数(设置窗口大小,设置最大化窗口)
options = webdriver.ChromeOptions()
options.add_argument('window-size=1920x1080')
logger.info("设置窗口尺寸为:window-size=1920x1080")
options.add_argument("start-maximized")
logger.info("初始化即最大化浏览器")
language = get_config_value("config", "language", "language")
options.add_argument('--lang=' + language)
logger.info("设置浏览器启动语言")
# 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
# options.add_argument('--headless')
# logger.info("设置浏览器打开方式为非可视化--headless")
# options.add_experimental_option("excludeSwitches", ['enable-automation']) # 禁用浏览器正在被自动化程序控制的提示
# logger.info("禁用浏览器正在被自动化程序控制的提示")
options.add_argument('--incognito') # 隐身模式(无痕模式)
logger.info("开启隐身模式(无痕模式)")
推荐阅读