【发布时间】:2020-03-04 19:51:28
【问题描述】:
我开发了一个小应用程序(在 C# 中),它使用 Selenium 在网站上自动进行测试。一切进行得都很顺利。但是当我使用“无头”浏览器尝试相同的应用程序时,测试不起作用。我对下面的代码有疑问:
var emailTextBox = driver.FindElement(By.Id("j_username"));
OpenQA.Selenium.WebDriverException:'对 URL http://localhost:49309/session/d4416c4b-e674-468b-8d6e-6a8bfc9bdf1d/element 的远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。'
同样的测试适用于普通浏览器,但不是在无头模式下,我尝试使用 Firefox、Chrome、PhantomJS(都在无头模式下)但它不起作用......
你有什么想法吗?
我的整个代码是:
'''
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace MacDo
{
class Program
{
static void Main(string[] args)
{
var driverService = FirefoxDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
var options = new FirefoxOptions();
options.AddArguments("-headless");
IWebDriver driver = new FirefoxDriver(driverService, options);
driver.Url = "https://www.mcdonalds.fr/";
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10000);
System.Threading.Thread.Sleep(2000);
var seConnecter = driver.FindElement(By.Id("seconnecter"));
seConnecter.Click();
driver.Close();
driver.Quit();
Console.ReadKey();
}
}
}
'''
我使用 Firefox 浏览器 73.0.1(32 位)(-> 我使用 Geckodriver 版本 0.26.0)
如前所述,它运行良好,但不是在无头模式下......
【问题讨论】:
-
PhantomJS 已被弃用。使用适用于现代浏览器的现有 Web 驱动程序之一。现在每个浏览器供应商都有一个。
-
你能发布你用来初始化网络驱动程序的代码吗?您能否还包括您使用的浏览器版本和 Web 驱动程序的版本?
-
@GregBurghardt 你会在下面看到我的代码和浏览器版本!
-
您的无头选项需要两个连字符。 options.AddArguments("--headless");
-
请编辑您的问题并添加此信息。它很容易在 cmets 中丢失。
标签: c# selenium headless-browser