Selenium Webdriver InternetExplorer随机HTTP请求失败

时间:2018-12-04 19:12:47

标签: c# selenium selenium-webdriver

我陷入一个问题,我相对不知道是什么导致了错误。

经过研究后,我发现这是一个普遍的问题,但是没有一种解决方案适用于我或对我有用。

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时,它实际上就可以工作了……不知道为什么

0 个答案:

没有答案