Как щелкнуть элемент на основе текста другого элемента - PullRequest
2 голосов
/ 12 июня 2019

Учитывая многострочную пользовательскую таблицу ...

<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>
...

Я хочу выбрать строку с заданным именем пользователя и установить флажок в этой строке.Я пробовал несколько способов сделать это, включая withText и / или parent() и / или find() и т.д. ... но ничего не работает.

Обычно я беру все li.name s, проверяю правильное имя и использую индекс для проверки правильного флажка, но я также не могу найти способ сделать это.

Застрял ... идеи?

Ответы [ 2 ]

6 голосов
/ 13 июня 2019

Есть немного более простой способ добиться желаемого поведения.Вы можете использовать метод withText для идентификации строки таблицы:

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

await t.click(checkboxToClick);
4 голосов
/ 13 июня 2019

Хорошо, я нашел способ. Это немного более хрупко, чем хотелось бы, но это работает. Пожалуйста, do добавьте ответ, если есть лучшее решение!

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

await t.click(checkboxToClick);
...