我正在尝试使用Selenium Chrome Webdriver在无头模式下运行Web抓取工具。在装有Windows 7 Professional SP1的计算机上运行,效果很好。在运行Windows Server 2008 R2 Standard SP1的计算机上,它试图获取第一个网页时会停滞。
public static void main ()
{
try
{
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--disable-gnu");
options.addArguments("--no-sandbox");
options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
options.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);
options.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
WebDriver driver = new ChromeDriver(options);
Thread.sleep(2000); // allow everything time to complete
System.out.println("driver loaded");
driver.get("https://www.someSite.org/login");
String page = driver.getPageSource ();
System.out.println("page=\n" + page);
...
}
catch (Exception e)
{
System.out.println("Exception : " + e.getMessage());
}
}
在Windows Server 2008下运行时,页面内容无法显示并且应用程序挂起。奇怪的是,如果使用任务管理器杀死了chrome.exe的第一个实例,则会显示网页内容,然后显示“ Exception:SocketError etc”。
两个平台都使用jre1.8.0_144,selenium-server-standalone-3.13.0.jar和chromedriver_win32版本2.42。使用相同的Web服务器。
我错过了一些重要的选择或功能吗?