自动化测试元素定位本地运行成功,在jenkins上使用headless模式后运行元素定位失败原因分析原创
金蝶云社区-廖彬植
廖彬植
16人赞赏了该文章 897次浏览 未经作者许可,禁止转载编辑于2020年12月23日 09:11:45

使用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("开启隐身模式(无痕模式)")



赞 16