1

我得到了这个复选框列表,我想验证是否选中了特定的复选框,我不能使用复选框 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 选择标签而不是输入。我正在考虑使用forfor 标签来查找输入的 id。但我该怎么做呢?

我不能使用idfor 输入和它的值,因为它是动态的,我唯一可以使用的是文本。

编辑

测试用例:

  1. 在 chkList 中创建一个新项目
  2. 通过与另一个项目检查来分配新项目。(为简洁起见未显示)
  3. 节省
  4. 验证是否将新项目分配给另一个项目。
4

1 回答 1

0

您是否尝试过这样的 XPath:

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

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

于 2012-09-01T07:42:23.920 回答