繁体   English   中英

如何单击具有特定文本列的表行的元素?

[英]How to click an element of a table row that has a column with specific text?

我有一个有多行的表。 我需要能够找到包含特定文本的列,然后单击该行的删除按钮。

我可以通过用户名找到该行,但是当我尝试说“单击其删除按钮”时,它抱怨找不到删除按钮的元素。

表的代码:

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

以及与兄弟姐妹和孩子一起玩,但我不太理解。

预期的:单击该表行的删除按钮。

实际:找到带有用户名的列后,它不想继续浏览该行以单击删除按钮。

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

我更仔细地研究了.sibling for testcafe并提出了以下解决方案:

.click(Selector('tbody').find('td').withText(name).sibling('td').find('a').nth(1))

这将找到具有我要查找的名称的行,从具有一个“ a”子项的父项“ tr”中获取“ td”的同级元素,然后单击该行中的第二个(即删除按钮)。

当获得用户名元素时,必须使用“删除”按钮找到公用的父元素,然后在父元素中找到它。 这在javascript中非常简单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM