2012-06-13 38 views
2

我使用C#寫一個測試,但現在我面臨一個問題。如何定位webelement與網站

這是我的html。我怎樣才能找到網頁上的「100」?

< ul> 

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

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

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

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

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

< /ul> 

回答

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

好,謝謝,我會嘗試。 – Sam

+1

當文本的開頭或結尾有空格時,我更喜歡使用contains()函數。因此,xpath將是「// li [contains(text(),'100')]」 – JacekM

+0

是的,這是非常真實的,但我的印象是這只是他的示例代碼中的一個錯字。有很多方法可以找到元素,他應該選擇適合他的方法。 – Arran

4

可以毫不的XPath也做:

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

我喜歡做這樣說:

  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(); } 
}