gpt4 book ai didi

c# - Selenium 陈旧元素 c#

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:17 24 4
gpt4 key购买 nike

protected SelectElement GetSelectElement(By selector)
{
new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(c =>
{
try
{
new SelectElement(driver.FindElement(selector));
return true;
}
catch (StaleElementReferenceException)
{
return false;
}
});

return new SelectElement(driver.FindElement(selector));
}

即使使用这个函数,我仍然在返回行上得到陈旧的元素,不知道还能做什么来避免陈旧的元素。

最佳答案

看起来您正在执行 boolean 检查,但在返回 SelectElement 时没有使用它。结果,return new SelectElement(driver.FindElement(selector)); 抛出 StaleElementException,而不关心你之前做了什么。

protected SelectElement GetSelectElement(By selector)
{
bool flag = new WebDriverWait(Driver, TimeSpan.FromSeconds(30)).Until(c =>
{
try
{
new SelectElement(Driver.FindElement(selector));
return true;
}
catch (StaleElementReferenceException)
{
return false;
}
});

if (flag)
{
return new SelectElement(Driver.FindElement(selector));

}
else
{
//something
}

return null;
}

关于c# - Selenium 陈旧元素 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101147/

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