C# 中的 Selenium WaitForElement 抛出 ElementNotVisibleException
本文关键字:抛出 ElementNotVisibleException WaitForElement Selenium 中的 | 更新日期: 2023-09-27 18:34:55
IWebDriver driver = Browser.Instance.Driver;
if (timeout > 0)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout));
try
{
wait.Until(ExpectedConditions.ElementExists(selector));
return driver.FindElement(selector);
}
catch(NoSuchElementException)
{
throw new NoSuchElementException();
}
}
else
{
// Search for element without timeout
return driver.FindElement(selector);
}
这是我的代码,我真的不知道为什么它在这里抛出异常。我的超时设置为 30 秒,但他已经在几秒钟后抛出了异常。当我在调试模式中运行测试并自己等待元素时,它工作正常。
起初我使用了这个,但也没有工作
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
return wait.Until(drv => drv.FindElement(by));</code>
ExpectedConditions.ElementExists();
正在等待元素存在于 DOM 中。要确保该元素在网站中可见,请使用ExpectedConditions.ElementIsVisible()
wait.Until(ExpectedConditions.ElementIsVisible(selector));
作为一方不是,如果wait.Until
条件不满足,它会抛出WebDriverTimeoutException
,而不是NoSuchElementException
。