页面无响应时,Selenium WebDriver挂起

时间:2012-02-27 13:36:35

标签: c# selenium webdriver

有没有办法明确设置超时值。我使用了以下内容,但似乎没有用:

IWebDriver driver = new FirefoxDriver(profile);
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 30));

如果我可以创建一个新选项卡并关闭当前选项卡,和/或在发生异常时停止加载页面,那么这将是一个充分的解决方法。

感谢。

3 个答案:

答案 0 :(得分:1)

WebDriver支持项目中提供了一个帮助程序类。使用它你可以等到你传递给"直到"方法被满足或在指定时间段后(例如在3秒后)超时

IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
IWebElement element = wait.Until(driver => driver.FindElement(By.Name("q")));

使用以下命令通过NuGet安装支持项目

Install-Package Selenium.Support

答案 1 :(得分:0)

我有一个运行我的selenium测试的WPF(WinForms)应用程序。当我需要睡眠动作时,我只需要调用Thread.Sleep(someInteger)。你试过了吗?

答案 2 :(得分:0)

如果驱动程序确实挂起,则WebDriverWait将不起作用,因为它所做的只是以指定的条件轮询驱动程序。

一种替代方法是将驱动程序包装在具有自己超时的单独线程上,然后异步运行驱动程序调用。这是一个令人费解的解决方案,但确实有效。