如何在无头模式下将 Selenium 和 ChromeDriver 设置为 运行
How to set up Selenium and ChromeDriver to run in headless mode
我正在尝试 运行 使用 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
取出调试器地址使其工作。
var chromeOptions = new ChromeOptions
{
BinaryLocation = @"C:\Users\<USERNAME>\AppData\Local\Google\Chrome SxS\Application\chrome.exe",
};
以防其他人在谷歌搜索时到达这里...
对我有用的是从这个 link 下载最新的 chrome-驱动程序:
https://sites.google.com/a/chromium.org/chromedriver/downloads
编码愉快:)
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;
我正在尝试 运行 使用 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
取出调试器地址使其工作。
var chromeOptions = new ChromeOptions
{
BinaryLocation = @"C:\Users\<USERNAME>\AppData\Local\Google\Chrome SxS\Application\chrome.exe",
};
以防其他人在谷歌搜索时到达这里...
对我有用的是从这个 link 下载最新的 chrome-驱动程序: https://sites.google.com/a/chromium.org/chromedriver/downloads
编码愉快:)
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;