当前位置: 首页 > 知识库问答 >
问题:

Selenium、XPATH或CSS:要从html表中选择具有指定文本的复选框,我将选中四个复选框

仉运乾
2023-03-14

我试图从HTML列表中选择一个复选框。我想选择文本为“CLEAN_AUDIT”的复选框。我的XPATH为名称、DOB、地址和电话选择了4个复选框CLEAN_ AUDIT:

表格在页面上的外观示例如下:

Table Header:             field        variable
               checkbox | Time_STAMP  | DOB
               checkbox | Time_STAMP  | Address
               checkbox | Clean_AUDIT | Name
               checkbox | Clean_AUDIT | Address
               checkbox | Clean_AUDIT | DOB
               checkbox | Clean_AUDIT | Phone
               etc...

我想选择1复选框:

  • 名称Clean_AUDIT

我的XPATH选择了4个复选框:

  • 名称Clean_AUDIT
  • 地址Clean_AUDIT
  • DOB的Clean_AUDIT
  • 手机Clean_AUDIT

表中的第三列是变量列。它在这一列中有名称,我需要第二列中的字段,即字段列。

如何构建XPATH以找到具有“名称”的第3列和第2列具有“Clean_AUDIT”

在我的下一个测试中,我可以找到带有“Clean_AUDIT”的“Address”

我的XPATH查找所有变量的所有Clean_AUDIT:

//table[@id="reporting_add_report_tab_manual_ct_fields_avail"]//div[(text()="CLEAN_AUDIT")]/preceding::td[1]//input

我需要以某种方式将Name包含在那里,以便我可以找到我想要的正确Clean_Audit。

示例HTML是(我缩短了它,否则它将太长,无法粘贴到这里:

<table id="reporting_add_report_tab_manual_ct_fields_avail" class="GLKP2TGBJE" cellspacing="0" __gwtcellbasedwidgetimpldispatchingfocus="true" __gwtcellbasedwidgetimpldispatchingblur="true">
<thead aria-hidden="false">
    <colgroup>
        <tbody style="">
            <tr class="GLKP2TGBCD GLKP2TGBJD" __gwt_subrow="0" __gwt_row="0">
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBED GLKP2TGBKD">
                    <div __gwt_cell="cell-gwt-uid-500" style="outline-style:none;">
                        <input type="checkbox" tabindex="-1" />
                    </div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBKD">
                    <div __gwt_cell="cell-gwt-uid-501" style="outline-style:none;">USN</div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBOD GLKP2TGBKD">
                    <div __gwt_cell="cell-gwt-uid-502" style="outline-style:none;" />
                </td>
            </tr>
            <tr class="GLKP2TGBCD" __gwt_subrow="0" __gwt_row="52">
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBED">
                    <div __gwt_cell="cell-gwt-uid-552" style="outline-style:none;">
                        <input type="checkbox" tabindex="-1" />
                    </div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD">
                    <div __gwt_cell="cell-gwt-uid-553" style="outline-style:none;">CLEAN_AUDIT</div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBOD">
                    <div __gwt_cell="cell-gwt-uid-554" style="outline-style:none;">Address</div>
                </td>
            </tr>
            <tr class="GLKP2TGBCD" __gwt_subrow="0" __gwt_row="20">
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBED">
                    <div __gwt_cell="cell-gwt-uid-552" style="outline-style:none;">
                        <input type="checkbox" tabindex="-1" />
                    </div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD">
                    <div __gwt_cell="cell-gwt-uid-553" style="outline-style:none;">EXPANDED_CLEAN_AUDIT</div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBOD">
                    <div __gwt_cell="cell-gwt-uid-554" style="outline-style:none;">Name</div>
                </td>
            </tr>
            <tr class="GLKP2TGBCE" __gwt_subrow="0" __gwt_row="21">
                <td class="GLKP2TGBBD GLKP2TGBDE GLKP2TGBED">
                    <div __gwt_cell="cell-gwt-uid-552" style="outline-style:none;">
                        <input type="checkbox" tabindex="-1" />
                    </div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDE">
                    <div __gwt_cell="cell-gwt-uid-553" style="outline-style:none;">CATEGORY</div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDE GLKP2TGBOD">
                    <div __gwt_cell="cell-gwt-uid-554" style="outline-style:none;">Name</div>
                </td>
            </tr>
            <tr class="GLKP2TGBCD" __gwt_subrow="0" __gwt_row="62">
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBED">
                    <div __gwt_cell="cell-gwt-uid-552" style="outline-style:none;">
                        <input type="checkbox" tabindex="-1" />
                    </div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD">
                    <div __gwt_cell="cell-gwt-uid-553" style="outline-style:none;">CLEAN_AUDIT</div>
                </td>
                <td class="GLKP2TGBBD GLKP2TGBDD GLKP2TGBOD">
                    <div __gwt_cell="cell-gwt-uid-554" style="outline-style:none;">DOB</div>
                </td>
            </tr>
        </tbody>
        <tbody style="display: none;">
            <tfoot style="display: none;" aria-hidden="true" />

谢了Riaz

共有1个答案

史洛城
2023-03-14

更新

WebElement test = getDriver().findElement(By.xpath("//table[@id='reporting_add_report_tab_manual_ct_fields_avail']//div[(text()='CLEAN_AUDIT')]/following::div[(text()='Name')]/preceding::td[1]/preceding::td[1]//input"));
test.click();

这是一个很好的例子。我已经用原始问题中的例子测试了这个片段。

 类似资料:
  • 我有一个带有3个复选框的html页面。每个输入框旁边都有一个文本。复选框嵌套在div标签中。 我想选择具有文本“清洁”的复选框 我的Xpath正在选择3个复选框 如何选择清除文本的复选框?它位于id为=“operations\u edit\u process\u list\u task\u 1”的div标记内 我的Xpath是: 超文本标记语言是: 谢了Riaz

  • 奇怪的是,使用preverse,它试图从另一个表中选择一个复选框。下面是我使用前面的“开发工具”中突出显示的HTML: 我可以使用什么XPATH?

  • 问题内容: 将单选按钮/复选框与文本正确对齐的最干净方法是什么?到目前为止,我一直使用的唯一可靠的解决方案是基于表的: 有些人可能会对此表示不满。我刚刚花了一些时间(再次)研究无表解决方案,但失败了。我尝试了浮动,绝对/相对定位和类似方法的各种组合。它们不仅主要默默地依赖于单选按钮/复选框的估计高度,而且在不同的浏览器中的行为也有所不同。理想情况下,我想找到一种不假设大小或浏览器特殊问题的解决方案

  • 问题内容: 那么,如何只允许用户选择一个复选框呢? 我知道单选按钮是“理想的”,但出于我的目的……不是。 我有一个字段,用户需要选择两个选项中的一个或两个,但不能两个都选。问题是我还需要我的用户也可以取消选择他们的选项,这是单选按钮失败的地方,因为一旦选择了组,就必须选择一个选项。 我将通过php验证信息,但是我仍然想将用户限制在一个答案,如果他们想给它的话。 问题答案: 该代码段将: 允许像单选

  • 我希望在选中表中的所有复选框时选中标题复选框,如果没有选中单个复选框,则应取消选中标题复选框。