selenium - 如何基于 Protractor 的相对值构建 xpath/css-selector

标签 selenium xpath css-selectors webdriver protractor

我试图从多个复选框中选择一个复选框,并且没有一个复选框具有任何类型的唯一标识符。此时我们可以区分它们的唯一方法是检查复选框的标签。但是标签在 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/

    相关文章:

    CSS:类的第一个和最后一个相邻 sibling

    java - 无法将 WebDriver 存储为全局变量并在同一 Swing 实例中多次执行测试

    c# - Xpath 使用 html 敏捷包返回 null

    java - xpath 获取多个节点值 - 使用 java 的 xml 解析器

    selenium - 我可以使用 xpath 查找包含 "::after"的元素吗?

    css - IE6 hack 中的子选择器

    python - 使用 Python 在 Selenium 中第二次出现元素后获取 td 的文本

    python - Selenium Python - 显式等待不起作用

    c# - Selenium 不会在提交后等待网站加载

    java - 如何使用 XPATH 到达特定的子节点?