有人建议我尝试使用“StaleElementReferenceException”来处理这个问题,但我不确定如何合并它。如果有人可以提供一些提示,我们将不胜感激。谢谢
[Then(@"I select the following list item '(.*)' from my search")]
public static void PreSelectedListOptions(string value)
{
var suggestedList = Driver.Instance.FindElements(By.CssSelector(".list-reset li"));
foreach (IWebElement suggestion in suggestedList)
{
if (value.Equals(suggestion.Text))
{
suggestion.Click();
}
}
}
最佳答案
您应该添加 break;
如果找到该值,它会单击并更改 dom
,这会导致下一次迭代出现问题。
[Then(@"I select the following list item '(.*)' from my search")]
public static void PreSelectedListOptions(string value)
{
var suggestedList = Driver.Instance.FindElements(By.CssSelector(".list-reset li"));
foreach (IWebElement suggestion in suggestedList)
{
if (value.Equals(suggestion.Text))
{
suggestion.Click();
break;
}
}
}
关于c# - 在缓存中找不到元素 - 也许页面在查找后已更改 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33146880/