Checkbox Cypress:单击TD中带有特定文本的TD旁边的复选框

Checkbox Cypress:单击TD中带有特定文本的TD旁边的复选框,checkbox,html-table,cypress,Checkbox,Html Table,Cypress,这可能吗 我的桌子是这样的: [ ] Address string 1 [ ] Address string 2 ... 标记: <td> <div> <input class="hb-checkbox type="checkbox" id="byggSkjemaliste-element0-0-adresse-skjema-element-0">

这可能吗

我的桌子是这样的:

[ ]           Address string 1
[ ]           Address string 2
...
标记:

<td>
  <div>
    <input class="hb-checkbox type="checkbox" id="byggSkjemaliste-element0-0-adresse-skjema-element-0">
    <div class="hb-label" data-e2e-selector="byggSkjemaliste-element0-0-adresse-skjema-element-0hb-checkbox-label">
      <label for="byggSkjemaliste-element0-0-adresse-skjema-element-0" id="byggSkjemaliste-element0-0-adresse-skjema-element-0-label"></label>
    </div>
  </div>
</td>
<td>
  Address string"
</td>


如果要遵循DOM布局,请使用导航命令,如
.prev()
,文档中会说

获取一组元素中每个元素的前一个同级

cy.contains('td','Address string 1')//包含要查找的文本的单元格
.prev('td')//上一个同级单元(td)
.find('input')//在该单元格中拾取输入
.检查();

以上是基于DOM结构的第一个尝试,但我更喜欢以下Cypress命令(为了简单,可能更健壮)

cy.contains('tr','Address string 1')//包含地址的行
//从tr的所有孩子身上看,
//因此,发现标签向下4层
.find('input')//选择该行中的输入
.检查();

这里的一个问题是,尽管您仔细地建立了一个链接到输入的标签,但它不包含任何有用的文本。如果该标签位于“地址字符串1”附近,则允许您执行例如
findByRole(“复选框”、{name:“地址字符串1”})
。请注意,该标签实际上并不包含该文本。是的,我阅读了您的评论-我将不得不修改。看起来文本在下一个单元格中。最后,我认为一切都很顺利