如何设置Selenium和ChromeDriver以在无头模式下运行

3

我正在尝试使用xUnit、Selenium和Chrome Canary(无头模式)运行浏览器测试,但是我一直收到这个错误:

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

这是我的代码:

var chromeOptions = new ChromeOptions
    {
        BinaryLocation = @"C:\Users\<USERNAME>\AppData\Local\Google\Chrome SxS\Application\chrome.exe",
        DebuggerAddress = "127.0.0.1:9222"
    };

chromeOptions.AddArguments("no-sandbox", "headless", "disable-gpu");
_driver = new ChromeDriver(chromeOptions) {Url = Url};

我对C#还很陌生,所以我不确定我是否做错了什么,或者我是否错过了某些设置。通过谷歌上述错误信息,我发现需要设置调试器地址并使用no-sandbox标志,但是这两种方法似乎都没有帮助。

使用以下版本:

selenium 3.4
chromedriver 2.29
xunit 2.2

非常有帮助,谢谢。我不得不使用Chrome 60 beta来运行无头浏览器。 - David Clarke
3个回答

3
去掉调试器地址后,它就可以工作了。
var chromeOptions = new ChromeOptions
{
    BinaryLocation = @"C:\Users\<USERNAME>\AppData\Local\Google\Chrome SxS\Application\chrome.exe",
};

0
            case "chrome9515headless":
                ChromeOptions chromeOptions = new ChromeOptions();
                chromeOptions.AddArgument("--headless");
                chromeOptions.AddArgument("--disable-gpu");
                chromeOptions.AddArgument("--disable-infobars");
                chromeOptions.AddArgument("--disable-extensions");
                chromeOptions.AddArgument("--window-size=1200,900");
                chromeOptions.AddArgument("--disable-browser-side-navigation");

                webDriver = new RemoteWebDriver(new Uri("http://127.0.0.1:9515"),
                    chromeOptions.ToCapabilities());
                break;
            case "chrome9515canary":
                ChromeOptions chromeOptionsCanary = new ChromeOptions();
                chromeOptionsCanary.BinaryLocation= @"C:\Users\********\AppData\Local\Google\Chrome SxS\Application\chrome.exe";
                //chromeOptionsCanary.AddArgument("--headless");
                //chromeOptions.AddArgument("--disable-gpu");
                chromeOptionsCanary.AddArgument("--disable-infobars");
                chromeOptionsCanary.AddArgument("--disable-extensions");
                chromeOptionsCanary.AddArgument("--window-size=1200,900");
                chromeOptionsCanary.AddArgument("--disable-browser-side-navigation");

                webDriver = new RemoteWebDriver(new Uri("http://127.0.0.1:9515"),
                    chromeOptionsCanary.ToCapabilities());
                break;

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接