Selenium Webdriver C#Click工程然后在IE中超时

时间:2015-11-15 18:40:09

标签: c# html selenium

我正在使用selenium webdriver的c#绑定测试Web应用程序。测试点击了一些带有onclick函数的元素,如(onclick="window.location.href = 'google.com'")。当涉及到最后一个元素时,它会单击它并加载下一个javascript图像查看应用程序页面。而不是测试结束,页面在相同的位置保持打开60秒,直到它失败并出现错误:

  

- 引发WebException   在System.Net.HttpWebRequest.GetResponse()   在OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)

     

结果讯息   OpenQA.Selenium.WebDriverException:对URL http://localhost:27431/session/fd102072-024b-4ccc-99af-4c8e609c027d/element/0843e2a6-82ce-48ff-9ad2-2649585a43dc/click的远程WebDriver服务器的HTTP请求在60秒后超时。         ----> System.Net.WebException:请求已中止:操作已超时。

同样的测试适用于chrome和firefox。该元素肯定会显示并单击。浏览器也正常进入页面,但由于某种原因超时。

2 个答案:

答案 0 :(得分:0)

这不是一个新问题。它已存在很长时间了。我一直在stackoverflowgoogle group阅读有关此问题的内容。虽然这个问题似乎是独一无二的(因为我已经使用了webdriver .net绑定大约两年而且从未遇到过这个问题)但是IEDriver服务器的作者有一个稳固的explanation为什么会这样。很多人建议增加隐性等待可能有所帮助,即使我怀疑会这样做。阅读博客可以帮助您理解问题并找出问题所在。

答案 1 :(得分:0)

你需要做的是......:

InternetExplorerDriverService driverService = InternetExplorerDriverService.CreateDefaultService();
                //driverService.HideCommandPromptWindow = true;
                driverService.LibraryExtractionPath = Environment.CurrentDirectory;

                InternetExplorerOptions options = new InternetExplorerOptions();
                options.EnableNativeEvents = true;
                options.IgnoreZoomLevel = true;
                options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;



                IWebDriver driver = new InternetExplorerDriver(driverService, options, TimeSpan.FromSeconds(180));