我努力让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);
运行:
我错过了什么?
答案 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中的错误。但是,还在寻找。