gpt4 book ai didi

c# - c# 中的 Selenium WaitForElement 抛出 ElementNotVisibleException

转载 作者:太空宇宙 更新时间:2023-11-03 23:21:01 31 4
gpt4 key购买 nike

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 秒,但他已经在几秒钟后抛出异常。当我在 Debug Modus 中运行测试并自己等待元素时,它工作正常。

我一开始用这个,但是也没用

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

关于c# - c# 中的 Selenium WaitForElement 抛出 ElementNotVisibleException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457408/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com