我陷入一个问题,我相对不知道是什么导致了错误。
经过研究后,我发现这是一个普遍的问题,但是没有一种解决方案适用于我或对我有用。
Selenium Error - The HTTP request to the remote WebDriver timed out after 60 seconds-这不适用,因为IE选项没有AddArgument方法来添加无沙箱和B.我的I.E.最初会打开我提供的默认网站,但是一旦打开便无法从
explorer.Driver = new InternetExplorerDriver(explorer.Options);
https://sqa.stackexchange.com/questions/13326/the-http-request-to-the-remote-webdriver-server-timed-out-after-60-seconds-我的页面已加载,但仍然超时,因此无济于事。
The HTTP request to the remote WebDriver server for URL - Chrome-再次,no sandbox选项无济于事,但是它的确注意到可能是浏览器/ webdriver不匹配,但我安装了最新的IE和最新的Selenium.Webdriver.IExplorer
在seleniumhq网站上,我可以找到以下内容,但是我读到,最近对硒的更新已解决了这个问题
再次,语言绑定(您的C#代码)使用HTTP与浏览器驱动程序(chromedriver.exe,geckodriver.exe,IEDriverServer.exe等)进行通信。它通过将POST发送到http://localhost:(some端口值)/会话来启动与驱动程序的会话。 WebDriver有线协议是基于HTTP的JSON,因此每个命令都会向本地主机发出HTTP调用。 至于为什么不创建会话,我不知道。 Selenium项目不太可能缩小问题范围。我敢肯定,它完全取决于环境,是在IIS下运行的。除此之外,我没有能力或环境进一步缩小范围。
任何人都可以帮忙吗?这令人沮丧,因为似乎每进行15到20次重新构建,我都会完全启动到我的代码进入下一个方法并登录的位置。
这是我的代码
private void btnInitalize_Click(object sender, EventArgs e)
{
Cursor = Cursors.AppStarting;
explorer = Initalizer.InitalizeRerouter();
explorer.Driver.FindElementByName("userID").Click();
explorer.Driver.FindElementByName("userID").SendKeys("classified");
explorer.Driver.FindElementByName("userPassword").Click();
explorer.Driver.FindElementByName("userPassword").SendKeys("classified");
explorer.Driver.FindElementByName("Login").Click();
Cursor = Cursors.Arrow;
}
这是另一个类
public static IExplorerModel InitalizeRerouter()
{
IExplorerModel explorer = new IExplorerModel();
explorer.Options = new InternetExplorerOptions();
explorer.Options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
explorer.Options.InitialBrowserUrl = @"http://plzhelp/hi/login.asp";
explorer.Options.EnsureCleanSession = true;
explorer.Driver = new InternetExplorerDriver(explorer.Options);
return explorer;
}
这是错误代码
The HTTP request to the remote WebDriver server for URL http://localhost:52438/session timed out after 60 seconds.'
我还应该注意,每次启动时,它都会加载到另一个端口上。不确定是否重要,但我想也许我只能在特定的端口上连接,但看不到要设置端口的任何地方
根据请求的错误堆栈跟踪
at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.IE.InternetExplorerDriver..ctor(InternetExplorerDriverService service, InternetExplorerOptions options)
at OpenQA.Selenium.IE.InternetExplorerDriver..ctor(InternetExplorerOptions options)
at RouteGuidesBiach.Classes.Initalizer.InitalizeRerouter() in C:\Users\u694172\source\repos\RouteGuidesBiach\RouteGuidesBiach\Classes\Initalizer.cs:line 26
更新:
当我已经在运行IE.exe进程并尝试初始化webdriver时,它实际上就可以工作了……不知道为什么