我们每天使用jenkins窗口服务(Headless模式)执行我们的selenium自动化脚本。直到昨天工作正常。突然它停止工作,没有启动浏览器。它显示以下错误消息[1553677874.187] [严重]:超时从渲染器接收消息:600.000。之后所有剩下的测试用例都失败了。
如果我们使用jenkins运行构建而没有Windows服务,它工作正常。我们只在使用Windows作为服务时遇到此问题
我试图降级浏览器版本和驱动程序版本。即使它不起作用
我希望当我们使用jenkins作为Windows服务执行但是收到错误消息时,浏览器应该在后台启动。
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("load-extension=C:\\1.13.4_0");
options.addArguments("--start-maximized");
options.addArguments("--ignore-certificate-errors");
options.addArguments("--disable-popup-blocking");
// options.addArguments("window-size=1400,600");
options.addArguments("enable-automation");
options.addArguments("--headless");
options.addArguments("--window-size=1920,1080");
options.addArguments("--no-sandbox");
// options.addArguments("--disable-extensions");
options.addArguments("--dns-prefetch-disable");
options.addArguments("--disable-gpu");
options.setPageLoadStrategy(PageLoadStrategy.NORMAL);
DesiredCapabilities capabilities =
DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY,
**strong text**options);
return new ChromeDriver(capabilities);
似乎您正在使用以下配置:
John Chen(所有者 - chromedriver)最近证实,
当Windows 73上的服务(例如Jenkins或任务计划程序)启动Chrome 73.0.3686.75时,我们已确认屏幕截图存在问题。有关详细信息,请参阅https://crbug.com/942023。对由此造成的任何不便,我们深表歉意。但是,我们还没有在Linux上观察到类似的问题,所以我们感谢您提供的任何帮助,使我们能够在Linux上重现该问题。我们无权访问TeamCity,但我们已经使用Selenium生产的Docker图像(selenium / standalone-chrome:3.141.59-lithium)测试了截屏,并没有发现任何问题。
昨天(2019年3月26日),约翰再次证实:
我知道从Jenkins运行Chrome 73的一些问题。我不知道任何变通方法。请关注https://crbug.com/942023以获取更新。
我们能够挖掘出主要问题。主要问题不在于ChromeDriver v73.x,而是Chrome v73.x和John正式确认为:
根本原因确实在Chrome 73.x中,而不是在ChromeDriver中。我们正在与Chrome开发人员合作寻找解决方案。
快速解决方案将是:
注意:如果您使用的是Chrome版本72,请下载ChromeDriver 2.46或ChromeDriver 72.0.3626.69
您可以在以下位置找到相关的讨论:
通过--disable-features=VizDisplayCompositor
实例添加参数ChromeOptions()
似乎解决了这个问题:
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-features=VizDisplayCompositor");
WebDriver driver = new ChromeDriver(options);
driver.get("https://google.com");
可能的问题是您的Google Chrome已更新并与您的Chromedriver不兼容。我建议您购买新的Chromedriver或将您的Google Chrome降级到以前的版本并禁用自动更新。
您可以在此处验证Chrome浏览器所需的Chromedriver版本:http://chromedriver.chromium.org/downloads
以下链接的第4步为我禁用自动谷歌Chrome更新。 https://www.webnots.com/7-ways-to-disable-automatic-chrome-update-in-windows-and-mac/