詹金斯(Jenkins)运行无头硒测试的空白页

时间:2020-05-13 23:46:36

标签: selenium google-chrome jenkins selenium-chromedriver xvfb

无头硒测试可以在我的机器上很好地运行(是的,我绝对应该搬到这个不存在问题的理想地方)。

但是,当我通过Jenkins启动这些测试时,找不到任何页面元素。我拍了一张截图以找出原因,并显示空白页。

这就是我实例化无头Chrome浏览器的方式。

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setPageLoadStrategy(PageLoadStrategy.NONE);
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--window-size=1920x1080");
chromeOptions.addArguments("start-maximised");
chromeOptions.addArguments("enable-automation");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--disable-infobars");
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--disable-browser-side-navigation");
chromeOptions.addArguments("--disable-gpu");
driver = new ChromeDriver(chromeOptions);
driver.manage().timeouts().pageLoadTimeout(30L, TimeUnit.SECONDS);
driver.manage().timeouts().setScriptTimeout(3L, TimeUnit.SECONDS);
driver.manage().window().maximize();

我有一个猜测,但我的同事说不可能是这样:我应该在Jenkins服务器上安装Xvfb吗?我的意思是,这是强制性的吗? (尝试此方法之前,我必须至少有51%的把握^^)

谢谢。

2 个答案:

答案 0 :(得分:0)

就像Shashank Kadne提到的那样,您需要在Chrome中设置一个选项以忽略证书。

chromeOptions.addArguments("--ignore-certificate-errors");

答案 1 :(得分:0)

我尝试了许多解决方案,但事实证明,詹金斯(Jenkins)被禁止访问我需要测试的资源。所以...我还是自己解决不了。系统管理员做到了。