Chrome无头无法完成(Windows)

时间:2018-04-27 08:10:04

标签: google-chrome

我努力让Chrome无头无所事事。

我已经尝试过简单的“开始”#39;在这里:https://developers.google.com/web/updates/2017/04/headless-chrome

这个例子:chrome --headless --disable-gpu --screenshot https://www.chromestatus.com/ 对我没有任何作用。文件夹中没有生成屏幕截图。 (以管理员身份运行CMD。)

我已经创建了一个webapp(在我的PC上运行IIS)并在其Index页面上设置了一个断点。当我使用Chrome无头控制应用程序时,会触发断点,但是我创建Chrome无头实例的第二个(控制台)应用程序永远不会超越“导航”()'线。

来自控制台应用的代码:

IWebDriver webClient;

ChromeOptions option = new ChromeOptions();
option.AddArguments("--headless", "--disable-gpu", "--window-size=1920,1200", "--ignore-certificate-errors", "--no-sandbox");
webClient = new ChromeDriver(option);

webClient.Navigate().GoToUrl("http://localhost:49709/");

((ITakesScreenshot)webClient).GetScreenshot().SaveAsFile("ChromeScreenshot.png", ScreenshotImageFormat.Png);

运行:

  • Windows 7 64位
  • Chrome 64位66.0.3359.139
  • ChromeDriver 2.38

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我已经找出导致问题的原因,但不知道为什么或正确解决问题。在这里写这个,以防将来帮助某人。

我偶然发现60秒后最终会抛出超时错误:

The HTTP request to the remote WebDriver server for URL http://localhost:51660/session timed out after 60 seconds.

在创建ChromeDriver对象时抛出此错误。请注意,这是Selenium尝试与Chrome WebDriver通信时抛出的错误,而不是Navigate()命令失败。

我完全有机会发现,从选项中删除“--headless”参数可以使一切正常。我还发现另一个参数“--remote-debugging-port = 9222”也导致它完全失败。

我目前假设这些问题特定于我的环境,而不是ChromeDriver中的错误。但是,还在寻找。