如何根据另一个元素的文本单击一个元素
How to click an element based on another element's text
给定多行用户table...
<tr>
<td class="cell--select">
<input class="choice__input" type="checkbox">
</td>
<td>
<div class="user">
<ul class="user-info">
<li class="name">Jane Doe</li>
</ul>
</div>
</td>
</tr><tr>
...
我想 select 具有给定用户名的行,然后单击该行上的复选框。我已经尝试了多种方法来做到这一点,包括 withText
and/or parent()
and/or find()
等......但没有任何效果。
通常,我会抓取所有 li.name
,检查名称是否正确并使用索引来检查正确的复选框,但我也想不出一种方法来完成此操作。
卡住了……想法?
好的,我找到方法了。这比我想要的要脆弱一些,但它确实有效。如果有更好的解决方案,请做添加答案!
const checkboxToClick = await Selector('.name')
.withText('Jane Doe')
.parent("tr")
.find(".choice__input");
await t.click(checkboxToClick);
有一种更简单的方法可以实现所需的行为。您可以使用 withText 方法来识别 table 行:
const checkboxToClick = await Selector('tr')
.withText('Jane Doe')
.find(".choice__input");
await t.click(checkboxToClick);
给定多行用户table...
<tr>
<td class="cell--select">
<input class="choice__input" type="checkbox">
</td>
<td>
<div class="user">
<ul class="user-info">
<li class="name">Jane Doe</li>
</ul>
</div>
</td>
</tr><tr>
...
我想 select 具有给定用户名的行,然后单击该行上的复选框。我已经尝试了多种方法来做到这一点,包括 withText
and/or parent()
and/or find()
等......但没有任何效果。
通常,我会抓取所有 li.name
,检查名称是否正确并使用索引来检查正确的复选框,但我也想不出一种方法来完成此操作。
卡住了……想法?
好的,我找到方法了。这比我想要的要脆弱一些,但它确实有效。如果有更好的解决方案,请做添加答案!
const checkboxToClick = await Selector('.name')
.withText('Jane Doe')
.parent("tr")
.find(".choice__input");
await t.click(checkboxToClick);
有一种更简单的方法可以实现所需的行为。您可以使用 withText 方法来识别 table 行:
const checkboxToClick = await Selector('tr')
.withText('Jane Doe')
.find(".choice__input");
await t.click(checkboxToClick);