Selenium WebDriver在页面没有响应时挂起

本文关键字:响应 挂起 WebDriver Selenium | 更新日期: 2023-09-27 18:25:59

是否有任何方法可以显式设置超时值。我使用了以下内容,但似乎不起作用:

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

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

谢谢。

Selenium WebDriver在页面没有响应时挂起

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将无法工作,因为它所做的只是用指定的条件轮询驱动程序。

另一种选择是将驱动程序封装在一个单独的线程上,该线程有自己的超时,并异步运行驱动程序调用。这是一个有点复杂的解决方案,但它是有效的。