按文字选择标签

时间:2015-11-03 08:45:31

标签: c# selenium

我正在使用selenium,我想根据标签的文本选择一个标签。下面是我想要选择的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;
                }
            }

但它没有选择。如何选择标签?

2 个答案:

答案 0 :(得分: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;
        }
}

如果您想要点击输入框,请将parentLabel替换为e

答案 1 :(得分:0)

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