我有一个包含多行的表。我需要能够找到包含特定文本的列,然后单击该行的delete按钮。
我可以通过它的userName找到行,但是当我试图说“单击它的删除按钮”时,它报告说它找不到删除按钮的元素。
表的代码:
<tbody>
<tr>
<td class="align-middle">77716d61-32ea-4bf3-a2bd-e48645d049ee</td>
<td class="align-middle">asdf</td>
<td class="align-middle">asdf@asdf.com</td>
<td class="align-middle">
<a class="btn btn-danger" href="/Identity/UserDelete/77716d61-32ea-4bf3-a2bd-e48645d049ee"><span class="oi oi-x"></span></a>
</td>
</tbody>
我试过了:
.click(Selector('tbody').find('td').withText(name).find('.btn.btn-danger'))
和:
.click(Selector('tbody').find('td').withText(name).find('td').find('a').find('.btn.btn-danger'))
以及与兄弟姐妹和孩子一起玩,但我不太理解这些。
预期:单击该表的行的delete按钮。
实际:在找到包含UserName的列之后,它不想继续遍历该行来单击delete按钮。
The specified selector does not match any element in the DOM tree.
 | Selector('tbody')
 | .find('td')
 | .withText('Automationieweg')
 > | .find('td')
 | .find('a')
 | .find('.btn.btn-danger')
发布于 2019-06-02 14:07:55
我对testcafe的.sibling进行了更仔细的研究,并提出了以下解决方案:
.click(Selector('tbody').find('td').withText(name).sibling('td').find('a').nth(1))
这将找到具有我要查找的名称的行,从具有'a‘子元素的父'tr’中获取'td‘的兄弟元素,并单击行中的第二个元素(即delete按钮)。
发布于 2019-06-02 14:02:07
当你得到你的username元素时,你必须找到带有delete按钮的公共父元素,并在父元素中找到它。这在javascript中非常简单。
https://stackoverflow.com/questions/56415647
复制相似问题