如何使用内部文本定位WebElement

本文关键字:定位 WebElement 文本 内部 何使用 | 更新日期: 2023-09-27 18:36:56

我将SeleniumC#一起使用来编写测试,但现在我遇到了一个问题。

这是我的 html。如何在网页上找到"100"?

< ul>
 < li class=""> 100 < /li>
 < li class=""> 200 < /li>
 < li class=""> 300 < /li>
 < li class=""> 400 < /li>
 < li class=""> 500 < /li>
< /ul>

如何使用内部文本定位WebElement

IWebDriver Driver = new FirefoxDriver();
IWebElement element = Driver.FindElement(By.XPath("//li[text()=' 100 ']"));

也可以在没有 xpath 的情况下完成:

driver.FindElements(By.TagName("li")).Where(elem => elem.Text.Trim() == "100").FirstOrDefault();

我更喜欢这样做:

  1. 获取页面上的所有元素。
  2. 循环访问检查文本的元素。
IList<IWebElement> allElements = driver.FindElements(By.CssSelector("*"));
foreach (var element in allElements)
{
    if (element.Text == "My inner text that I am looking for") { element.Click(); }
}