Chrome版本:61到63
Chrome网络驱动程序:2.33到2.35
我无法在我使用Xvfb运行的selenium程序中获取屏幕截图。
((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
程序在Windows机器上运行良好,我使用上面的代码获得截图。但是,当我在Linux服务器上运行该程序时,使用Xvfb我得到一个空白的白色屏幕截图,没有别的。
答案 0 :(得分:1)
那解决了我的问题:
ChromeOptions chromeOptions = new ChromeOptions();
HashMap<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("intl.accept_languages", "English");
chromeOptions.setExperimentalOption("prefs", chromePrefs);
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("enable-automation");
chromeOptions.addArguments("--headless"); //should be enabled for Jenkins
chromeOptions.addArguments("--disable-dev-shm-usage"); //should be enabled for Jenkins
chromeOptions.addArguments("--window-size=1920x1080"); //should be enabled for Jenkins
chromeOptions.addArguments("--disable-notifications");
chromeOptions.addArguments("--disable-extenstions");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--dns-prefetch-disable");
chromeOptions.addArguments("disable-infobars");
chromeOptions.addArguments("force-device-scale-factor=0.65");
chromeOptions.addArguments("high-dpi-support=0.65");
chromeOptions.setPageLoadStrategy(PageLoadStrategy.NORMAL);
driver = new ChromeDriver(chromeOptions);
答案 1 :(得分:0)
在浏览网络之后,我找到了一个解决方案,我很乐意分享它,这样其他人就不会花太多时间在上面。
我添加了一个参数:
chromeOptions.AddArgument("--disable-gpu");
我希望对您有用