Selenium v​​erify复选框由文本检查

时间:2012-08-31 04:14:09

标签: selenium selenium-webdriver

我收到了这个复选框列表,我想验证是否选中了特定的复选框,我不能使用复选框ID但只能使用文本,但它就像这样。

<ul id="chkList">
    <li>
        <span>
            <input id="CheckBox_1" type="checkbox" value="1" checked="checked" />
            <label for="CheckBox_1">Cat</label>
        </span>
    </li>
    <li>
        <span>
            <input id="CheckBox_2" type="checkbox" value="20" />
            <label for="CheckBox_2">Dog</label>
        </span>
    </li>
    <li>
        <span>
            <input id="CheckBox_2" type="checkbox" value="22" />
            <label for="CheckBox_2">Alley</label>
        </span>
    </li>
</ul>

我想做点什么

driver.FindElement(By.XPath("//ul[@id='chkList']/li/span/label[./text()='Cat'])).Selected;

但我当然不能这样做,因为xpath选择标签而不是输入。我正在考虑使用for标签来查找输入的id。但是我该怎么做呢?

我无法使用id作为输入及其值,因为它是动态的,我唯一可以使用的是Text。

修改

测试用例:

  1. 在chkList
  2. 中创建一个新项目
  3. 通过使用其他项目进行检查来分配新项目。 (为简洁起见未示出)
  4. 保存
  5. 验证新项目是否已分配给其他项目。

1 个答案:

答案 0 :(得分:0)

您是否尝试过像这样的XPath:

driver.FindElement(By.XPath("//ul[@id='chkList']/li[1]/span/input)).Selected;

您可以为清单数量保留一个计数,并将该值与li [count]元素一起使用。