2015-11-03 109 views
1

我使用硒,我想根據標籤的文字選擇標籤。以下是我想要選擇的html。按文字選擇標籤

<div class="checkbox"> 
    <fieldset> 

    <label><input type="checkbox" name="category" value="1"/> text1 </label> 

    <label><input type="checkbox" name="category" value="2"/> text2 </label> 

    </fieldset> 
</div> 

我已經試過

IList<IWebElement> element = driver.FindElements(By.Name("category")); 
      foreach (IWebElement ele in element) 
      { 
       if (ele.Text.Contains(my text)) 
       { 
        ele.Click(); 
        break; 
       } 
      } 

但它不選擇。如何選擇標籤?

回答

0

快速一瞥,它似乎是你選擇輸入框,而不是標籤,它的父母。

如果你想選擇父母。

IList<IWebElement> element = driver.FindElements(By.Name("category")); 
foreach (IWebElement e in element) 
{ 
     var parentLabel = e.FindElement(By.XPath("..")); 
     if (parentLabel.Text.Contains(my text)) 
     { 
      parentLabel.Click(); 
      break; 
     } 
} 

如果你想點擊輸入框,而不是與e更換parentLabel

+0

By.XPath(「..」))是什麼意思? – Sid

+1

@SidharthJain「..」在xpath中意味着要上一層,在這種情況下轉到您的輸入元素的父元素,這是標籤元素 – drkthng

0
driver.FindElement(By.PartialLinkText("mytext")).Click(); 
+0

頁面中出現了多個「mytext」,這就是爲什麼我無法使用By.PartialLinkText – Sid

+0

driver.FindElement(By.XPath(「// div [@ class ='checkbox'] // label [contains(text(),''+ myText +'」)]「) )。單擊(); –