javascript - 如何单击具有特定文本列的表格行的元素?
问题描述
我有一个多行的表。我需要能够找到具有特定文本的列,然后单击该行的删除按钮。
我可以通过它的用户名找到该行,但是当我尝试说“单击它的删除按钮”时,它抱怨它找不到删除按钮的元素。
表的代码:
<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'))
以及和兄弟姐妹一起玩,但我不太了解那些。
预期:为该表的行单击删除按钮。
实际:在找到具有 UserName 的列后,它不想继续遍历该行以单击删除按钮。
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')
解决方案
我更仔细地研究了 testcafe 的 .sibling 并提出了这个解决方案:
.click(Selector('tbody').find('td').withText(name).sibling('td').find('a').nth(1))
这将找到具有我要查找的名称的行,从具有“a”子元素的父“tr”获取“td”的兄弟元素,然后单击该行中的第二个元素(即删除按钮。)
推荐阅读
- powershell - 无法解析 Get-WinEvent 消息正文?
- react-native - 用 Axios 反应原生图片上传错误:网络错误
- python-3.x - 如何根据其他df中的条件和值为pandas df中的新列分配值?
- ios - 在 Xcode 12 中使用 SPM 时的 iOS 部署目标问题
- python - 根据其他字典的值对字典的值进行排序
- c - getline() 从文本文件读取时读取垃圾值
- python-3.x - 如何从 django 中可用的大量 csv 文件中选择一个 csv 文件
- c++ - C++ 更新 unordered_map 中的值,其中键值对的数据类型为 int-unordered_set
- javascript - React中字符串的正则表达式
- excel - VBA宏根据日期将单元格值从工作表1复制/粘贴到2