我目前正在开发一个应该测试GWT应用程序的实用工具。我想使用无头Chrome,但它不起作用
我执行以下操作:
DesiredCapabilities cap = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("--headless");
cap.setCapability(ChromeOptions.CAPABILITY, options);
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub/"), cap);
wait = new WebDriverWait(driver, 10);
如果我driver.get(url)
去google.com
并截取屏幕截图,我可以看到Google页面,但是一旦我尝试打开GWT应用程序,我只会得到一个白页和以下打印有System.out.println(driver.getPageSource());
的来源
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>Secure Login Service</title>
</head>
<body>
但是一旦我删除无头标志铬就会启动并且 gwt 应用程序正常加载
我在跑步
- 铬版本 63.0.3239.84
- 硒服务器独立-3.5.3
- Chrome Driver 2.33
- 视窗 7 企业版 64 位
我无法更新 Chrome,但我可以尝试不同版本的 selenium 驱动程序和 chromedriver(我尝试了其他版本,但它们无法运行 - 但这是另一个主题( - 是否有另一个不需要安装的好无头浏览器(即 awesomeHeadlessBrowser.jar?
我感谢任何帮助
除了--headless
选项外,您还需要将其传递--disable-gpu
.
但是,不要显式传递这些选项,只需调用driver.set_headless()
(这将为您设置这两个选项(。