如何使用innertext定位webelement

时间:2012-06-13 09:02:31

标签: c# selenium element getelementsbytagname qwebelement

我使用 selenium C#来编写测试,但现在我遇到了问题。

这是我的HTML。如何在网页上找到“100”?

< ul>

 < li class=""> 100 < /li>

 < li class=""> 200 < /li>

 < li class=""> 300 < /li>

 < li class=""> 400 < /li>

 < li class=""> 500 < /li>

< /ul>

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

我更喜欢这样做:

  1. 获取页面上的所有元素。
  2. 遍历检查文本的元素。
  3. 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(); }
    }