首页 > 解决方案 > 选择复选框时遇到问题

问题描述

我页面上的复选框如下所示:

<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 数据中。

我正在尝试通过使用来选择它

.click('input[id="ui-chkbox ui-widget", type="checkbox"]')

而且我已经尝试使用 .waitForElementVisible 并且仍然无法选择它。

谢谢。

标签: javascriptautomated-testsnightwatch

解决方案


您无法选择它,因为您没有带有ui-chkbox ui-widget的input字段:id

根据您的以下代码:

<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>

您应该在选择器中使用复选框名称

 input:checkbox[name='dataTable_checkbox']

或者

input[type='checkbox'][name='dataTable_checkbox']

或者

input[type='checkbox', name='dataTable_checkbox']

推荐阅读