C# 在缓存中找不到元素-可能该页在c中查找后已更改#

C# 在缓存中找不到元素-可能该页在c中查找后已更改#,c#,.net,selenium,selenium-webdriver,C#,.net,Selenium,Selenium Webdriver,有人建议我尝试使用“StaleElementReferenceException”来处理这个问题,但我不确定如何合并它。如果有人能提供一些提示,我们将不胜感激。多谢各位 [Then(@"I select the following list item '(.*)' from my search")] public static void PreSelectedListOptions(string value) { var suggestedList = D

有人建议我尝试使用“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;
        }
    }
}