C# Selenium-通过元素循环检查集合是否有值

C# Selenium-通过元素循环检查集合是否有值,c#,selenium,selenium-webdriver,selenium-chromedriver,C#,Selenium,Selenium Webdriver,Selenium Chromedriver,我将具有特定值的DOM元素作为文本在下面的情况下,它是“Uno” <span class="custom-field-value" xpath="1">Uno</span> Uno 元素具有相同的类,但仅在提到的文本值中不同 我想检查特定Webelement的文本是否在至少一个span元素中可见 已完成的步骤: 定义IWebElements 创建的元素文本值列表,我将用于比较: IList<string> c

我将具有特定值的DOM元素作为文本在下面的情况下,它是“Uno”

<span class="custom-field-value" xpath="1">Uno</span>
Uno
元素具有相同的类,但仅在提到的文本值中不同

我想检查特定Webelement的文本是否在至少一个span元素中可见

已完成的步骤:

  • 定义IWebElements

  • 创建的元素文本值列表,我将用于比较:

      IList<string> customFields = new List<string> { customField1, customField2, customField3, customField4 };
    
    IList customFields=新列表{customField1、customField2、customField3、customField4};
    
  • 我对比较法有问题。我需要将列表传递给方法,从每个列表Webelement.Text值获取,然后循环遍历所有元素,检查每个文本是否等于和一个列表位置。我想最好的办法是把loop和linqu混在一起

      public bool ValidateCustomFields(IList<string> customFields)
      {
          for (int i = 0; i < CartCustomFields.Count; i++)
          {
              CartCustomFields.ElementAt(i).Text.
              CartCustomFields.Any(element => element.FindElement(By.XPath(".")).Text)
          }
      }
    
    public bool ValidateCustomFields(IList customFields)
    {
    for(int i=0;ielement.FindElement(By.XPath(“.”).Text)
    }
    }
    

如果您要检查特定文本是否显示在UI上,并且可以包含在多个元素中,那么为什么不使用xpath搜索所有元素呢

//span[@class = 'custom-field-value' and text() = 'YOUR_TEXT'] 

然后检查列表是否为空?

但如何传递IWebElements中的每个列表元素,然后进行比较?如果您的目标只是查找具有该文本的webElements,那么您就不必进行比较了……或者我遗漏了什么?您创建的customFields数据的顺序是否与w.r.t网页相同?我认为这应该适用于您
CartCustomFields.Any(element=>element.FindElement(By.XPath(“.”)。Text==customFields[I])