Selenium WebDriver在页面没有响应时挂起
本文关键字:响应 挂起 WebDriver Selenium | 更新日期: 2023-09-27 18:25:59
是否有任何方法可以显式设置超时值。我使用了以下内容,但似乎不起作用:
IWebDriver driver = new FirefoxDriver(profile);
driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 30));
如果我可以创建一个新的选项卡并关闭当前选项卡,和/或在发生异常时停止页面加载,这将是一个足够的解决方法。
谢谢。
WebDriver支持项目中提供了一个助手类。使用它,你可以等待,直到你传递给"Untill"方法的条件得到满足,或者它在指定的时间段后超时(在这种情况下,例如3秒后)
IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
IWebElement element = wait.Until(driver => driver.FindElement(By.Name("q")));
使用以下命令通过NuGet安装支持项目
Install-Package Selenium.Support
我有一个运行硒测试的WPF(WinForms)应用程序。当我需要睡眠的时候,我会调用Thread.sleep(someInteger)。你试过吗?
如果驱动程序真的挂起了,WebDriverWait将无法工作,因为它所做的只是用指定的条件轮询驱动程序。
另一种选择是将驱动程序封装在一个单独的线程上,该线程有自己的超时,并异步运行驱动程序调用。这是一个有点复杂的解决方案,但它是有效的。