我如何找到与标签关联的复选框元素

How I can find a checkbox element associated with a label

我正在尝试创建一个只有标签作为唯一标识符的复选框的 xpath。创建新的复选框元素时,给定的 ID 或值会发生变化。

<li>
  <input type="checkbox" value="f052503c-28c2-4b2d-8bd3-0ef6cc0e563a" id="f052503c-28c2-4b2d- 
  8bd3-0ef6cc0e563a" name="ElementIds" class="i-checks" 
  checked="">
  <span class="m-l-xs"><label for="f052503c-28c2-4b2d-8bd3-0ef6cc0e563a">AuElement</label> 
  </span>
</li>

到目前为止我已经尝试了几个选项但没有任何效果:

CheckboxElement = //input[@type = 'checkbox' and @label = 'AuElement']
//input[@type='checkbox']//span[@label='AuElement']

现在我尝试使用: //*[contains(text(), 'AuElement')] xpath 但我不能使用 if CheckboxElement.Selected() 方法检查复选框是否已被选中。任何帮助将不胜感激。谢谢

您可以使用这个 XPath:

"//li[.//label[text()='AuElement']]//input"

解释:
找到包含 label 元素且 text 值为“AuElement”的此类 li 元素。现在在 li 元素(它的子元素)中找到 input(复选框)元素。
换句话说:
您可以使用公共父元素,以便根据它的唯一子 label 找到该父元素,然后转到其中的 input 元素。