Как щелкнуть по элементу строки таблицы, в которой есть столбец с определенным текстом? - PullRequest
2 голосов
/ 02 июня 2019

У меня есть таблица с несколькими строками.Мне нужно найти столбец с определенным текстом, а затем нажать кнопку удаления этой строки.

Я могу найти строку по ее имени пользователя, но когда я пытаюсь сказать «нажмите кнопку удаления»,он жалуется, что не может найти элемент кнопки удаления.

Код таблицы:

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

Ответы [ 2 ]

2 голосов
/ 02 июня 2019

Я более тщательно исследовал .sibling для testcafe и придумал это решение:

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

Это находит строку с именем, которое я ищу, получает элемент родственного элемента 'td' изродительский «tr», у которого есть дочерний элемент «a» и который щелкает вторым в строке (это кнопка удаления).

1 голос
/ 02 июня 2019

когда вы получите свой элемент username, вы должны найти общий родительский элемент с кнопкой удаления и найти его в parent. это очень просто в javascript

...