如何在c#中延迟或等待selenium脚本

本文关键字:等待 selenium 脚本 延迟 | 更新日期: 2023-09-27 18:20:11

我正在制作一个使用C#和selenium测试网站的脚本。我遇到了一个问题,一个页面不能立即加载所有元素,所以我的代码会产生一个错误异常,表明该元素不存在。有没有办法让我的代码暂停并等待所有元素加载,或者设置一个固定的等待时间?

我试过一些东西,比如:

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(2));

但我认为它不起作用。

如何在c#中延迟或等待selenium脚本

固定的等待时间根本不可靠。相反,您询问的是Explicit Wait功能——明确地等待某个预期条件得到满足——例如,等待特定元素出现或可见。示例:

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

在本例中,selenium webdriver将等待长达3秒,等待name="q"的元素出现(默认情况下),每隔500毫秒检查一次是否存在。