意外异常Selenium IE Webdriver

时间:2014-09-07 13:46:20

标签: c# selenium webdriver

我在Windows 7 32位操作系统上使用Visual Studio 2010 C#和IEDriverServer.exe Webdriver版本2.42。

简而言之,我找到一个元素并单击它,操作就完成了(单击该元素并导致弹出窗口(不是新窗口)关闭)但代码似乎等待一段时间,然后抛出错误Click()行上的(WebDriverException)。

几乎好像它没有意识到它成功地完成了它的任务。

try
{
   popup.FindElement(By.ClassName("inbox_mainclose")).Click();
}

catch (WebDriverException)
{
}

我不知道如何调试这个,而在错误之外没有任何错误,导致我的应用程序退出。

我很乐意听到遇到或克服这个问题的任何人。

编辑异常信息。

  

OpenQA.Selenium.WebDriverException未处理Message = HTTP   请求远程WebDriver服务器获取URL   http://localhost:51989/session/e151b5bd-e473-4625-912b-aa2ba5c9e8de/element/c63f25fb-4b36-4de8-8474-aec538b84808/click   60秒后超时。

     

Source = WebDriver StackTrace:          在OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest)   请求)   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ HttpCommandExecutor.cs:行   150

     

在OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令   commandToExecute)in   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ HttpCommandExecutor.cs:行   114

     

在OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(命令   commandToExecute)in   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ DriverServiceCommandExecutor.cs:行   73

     

在OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String   中的driverCommandToExecute,Dictionary`2参数)   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ RemoteWebDriver.cs:行   852

     

在OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(String   中的driverCommandToExecute,Dictionary`2参数)   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ RemoteWebDriver.cs:行   745

     

在OpenQA.Selenium.Remote.RemoteWebElement.Execute(String   commandToExecute,Dictionary`2 parameters)in   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ RemoteWebElement.cs:行   810

     

在OpenQA.Selenium.Remote.RemoteWebElement.Click()中   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ RemoteWebElement.cs:行   336

     

在site_test.Form1.myClick(IWebElement webel)中   C:\ Users \ eltegs \ Documents \ Visual Studio   2010 \ Projects \ site_test \ site_test \ Form1.cs:第42行

     

at site_test.Form1。<> c__DisplayClass1.b__0()in   C:\ Users \ eltegs \ Documents \ Visual Studio   2010 \ Projects \ site_test \ site_test \ Form1.cs:第240行           在System.Threading.ThreadHelper.ThreadStart_Context(对象状态)

     

在System.Threading.ExecutionContext.Run(ExecutionContext   executionContext,ContextCallback回调,对象状态)           at System.Threading.ThreadHelper.ThreadStart()InnerException:System.Net.WebException          消息=操作已超时          来源=系统          堆栈跟踪:               在System.Net.HttpWebRequest.GetResponse()                在OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest)   请求)   C:\项目\ webdriver的\ DOTNET的\ src \ webdriver的\远程\ HttpCommandExecutor.cs:行   142           的InnerException:

1 个答案:

答案 0 :(得分:1)

经过对网络的进一步研究后,我发现这也是其他网络驱动程序中的一个问题,包括chrome和firefox,并且已经存在了18个月没有修复。

我的解决方案是获取对弹出元素的(" inbox_mainclose")子元素的引用,将其传递给另一个线程并在那里执行单击。

这会导致新线程等待请求超时,我的主线程继续工作。

我写这个作为答案,因为问题出在webdriver外部库中。