我试图从多个复选框中选择一个复选框,并且没有一个复选框具有任何类型的唯一标识符。此时我们可以区分它们的唯一方法是检查复选框的标签。但是标签在 html 结构中作为同级放置,如下所示:
<div _ngcontent-c9="" class="row pb-2">
<div _ngcontent-c9="" class="form-group col-10 pl-0 mb-0 d-flex justify-contents-center">
<div _ngcontent-c9="" class="col-6">
<label _ngcontent-c9="" class="col ml-2"> Homebound Services: <br _ngcontent-c9="">
</label>
</div>
<div _ngcontent-c9="" class="col-6 pl-0 ">
<input _ngcontent-c9="" type="checkbox">
</div>
</div>
</div>
<div _ngcontent-c9="" class="row pb-2">
<div _ngcontent-c9="" class="form-group col-10 pl-0 mb-0 d-flex justify-contents-center">
<div _ngcontent-c9="" class="col-6">
<label _ngcontent-c9="" class="col ml-2"> Home-Based Services:
<br _ngcontent-c9="">
</label>
</div>
<div _ngcontent-c9="" class="col-6 pl-0 ">
<input _ngcontent-c9="" type="checkbox">
</div>
</div>
从这个片段中,我需要选择两个复选框,标签为 "Homebound services"和 Home-based Services"。下面是我构建动态 xpath 的失败尝试:
//div[@class="row pb-2"]//label[contains(text()," Homebound ESY Services: ")] and //input[type="checkbox"]
如何构建这个 xpath?另外,如果我们可以为相同的元素构建动态 CssSelector,我该怎么做?
最佳答案
要识别相应的复选框,您可以使用以下解决方案:
Homebound Services
的 XPath :"//label[contains(., 'Homebound Services:')]//following::input[1]"
Home-Based Services
的 XPath :"//label[contains(., 'Home-Based Services:')]//following::input[1]"
关于selenium - 如何基于 Protractor 的相对值构建 xpath/css-selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54314742/