选择复选框时遇到问题
Having trouble selecting checkboxes
我页面上的复选框如下所示:
<td role="gridcell" style="width: 30px; padding:0;text-align: center;" class="ui-selection-column">
<div class="ui-chkbox ui-widget">
<div class="ui-helper-hidden-accessible"><input type="checkbox" name="dataTable_checkbox" aria-checked="false"></div>
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default"><span class="ui-chkbox-icon ui-icon ui-c ui-icon-blank"></span></div>
</div>
</td>
它包含在 tbody 和 tr 数据中。
我正在尝试 select 它使用
.click('input[id="ui-chkbox ui-widget", type="checkbox"]')
而且我已经尝试使用 .waitForElementVisible,但仍然无法 select。
谢谢。
你不能 select 因为你没有 input
字段 id
作为 ui-chkbox ui-widget:
根据您的以下代码:
<td role="gridcell" style="width: 30px; padding:0;text-align: center;" class="ui-selection-column">
<div class="ui-chkbox ui-widget">
<div class="ui-helper-hidden-accessible">
<input type="checkbox" name="dataTable_checkbox" aria-checked="false">
</div>
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default">
<span class="ui-chkbox-icon ui-icon ui-c ui-icon-blank"></span>
</div>
</div>
</td>
您应该在 select 或
中使用复选框名称
input:checkbox[name='dataTable_checkbox']
或
input[type='checkbox'][name='dataTable_checkbox']
或
input[type='checkbox', name='dataTable_checkbox']
对于那些想知道如何 select 在 table 中选择复选框的人,我发现了一个非常有效的方法:当您检查一个元素时,右键单击它 > 复制 > 复制select或者。用 .click ('yourselectorhere') 粘贴它,它应该 运行 就好了。为我工作。
根据您在此处的代码:
.click('input[id="ui-chkbox ui-widget", type="checkbox"]')
您错误地将 类 ui-chkbox ui-widget
识别为 ID。在页面上找到该复选框的特定 ID(如果有),然后 select 使用它。页面上的 ID 特定于该元素。
.click('#youridhere')
或者,使用 Xpath 并 select 通过其包含任何文本的路径。
.click("//*[contains(text(), 'Checkbox text here')]")
我页面上的复选框如下所示:
<td role="gridcell" style="width: 30px; padding:0;text-align: center;" class="ui-selection-column">
<div class="ui-chkbox ui-widget">
<div class="ui-helper-hidden-accessible"><input type="checkbox" name="dataTable_checkbox" aria-checked="false"></div>
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default"><span class="ui-chkbox-icon ui-icon ui-c ui-icon-blank"></span></div>
</div>
</td>
它包含在 tbody 和 tr 数据中。
我正在尝试 select 它使用
.click('input[id="ui-chkbox ui-widget", type="checkbox"]')
而且我已经尝试使用 .waitForElementVisible,但仍然无法 select。
谢谢。
你不能 select 因为你没有 input
字段 id
作为 ui-chkbox ui-widget:
根据您的以下代码:
<td role="gridcell" style="width: 30px; padding:0;text-align: center;" class="ui-selection-column">
<div class="ui-chkbox ui-widget">
<div class="ui-helper-hidden-accessible">
<input type="checkbox" name="dataTable_checkbox" aria-checked="false">
</div>
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default">
<span class="ui-chkbox-icon ui-icon ui-c ui-icon-blank"></span>
</div>
</div>
</td>
您应该在 select 或
中使用复选框名称 input:checkbox[name='dataTable_checkbox']
或
input[type='checkbox'][name='dataTable_checkbox']
或
input[type='checkbox', name='dataTable_checkbox']
对于那些想知道如何 select 在 table 中选择复选框的人,我发现了一个非常有效的方法:当您检查一个元素时,右键单击它 > 复制 > 复制select或者。用 .click ('yourselectorhere') 粘贴它,它应该 运行 就好了。为我工作。
根据您在此处的代码:
.click('input[id="ui-chkbox ui-widget", type="checkbox"]')
您错误地将 类 ui-chkbox ui-widget
识别为 ID。在页面上找到该复选框的特定 ID(如果有),然后 select 使用它。页面上的 ID 特定于该元素。
.click('#youridhere')
或者,使用 Xpath 并 select 通过其包含任何文本的路径。
.click("//*[contains(text(), 'Checkbox text here')]")