有没有办法明确设置超时值。我使用了以下内容,但似乎没有用:
IWebDriver driver = new FirefoxDriver(profile);
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 30));
如果我可以创建一个新选项卡并关闭当前选项卡,和/或在发生异常时停止加载页面,那么这将是一个充分的解决方法。
感谢。
答案 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将不起作用,因为它所做的只是以指定的条件轮询驱动程序。
一种替代方法是将驱动程序包装在具有自己超时的单独线程上,然后异步运行驱动程序调用。这是一个令人费解的解决方案,但确实有效。