如何根据另一个元素的文本单击一个元素

Bri*_*ine 2 automated-tests web-testing selector e2e-testing testcafe

给定多行用户表...

<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>
...
Run Code Online (Sandbox Code Playgroud)

我想选择具有给定用户名的行,然后单击该行上的复选框。我尝试了多种方法来做到这一点,包括withText和/或parent()和/或find()等...,但没有任何效果。

通常,我会抓住所有的li.names,检查正确的名称,然后使用索引来检查正确的复选框,但是我也想不出一种方法来实现。

卡住...想法?

小智 6

有一种简单的方法可以实现所需的行为。您可以使用withText方法来标识表行:

const checkboxToClick = await Selector('tr')
  .withText('Jane Doe')
  .find(".choice__input");

await t.click(checkboxToClick);
Run Code Online (Sandbox Code Playgroud)