#cypress
#cypress
Вопрос:
У меня есть таблица со строками (список). Я получаю элемент с помощью get и нажимаю на него.
HTML:
<table>
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr data-row-key="5fc63ee4502a5d60c8fc9550">
<td>43</td>
<td>testName12</td>
<td>
<div>
<button type="button">
<i aria-label="icon: edit" class="anticon-edit"></i>
</button>
<button type="button">
<i aria-label="icon: delete" class="anticon-delete"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
Эта строка выбрана для меня, все в порядке:
cy.get("tr:contains('testName12')", { timeout:20000}).click({force: true})
Но в этом элементе у меня есть те же дочерние элементы («кнопка»), и мне нужно щелкнуть по одному из них:
cy.get("tr:contains('testName12')", { timeout:20000}).children('.anticon-delete').click({force: true})
Я получаю сообщение об ошибке:
Timed out retrying: Expected to find element: .anticon-delete, but never found it. Queried from element: <tr.ant-table-row.ant-table-row-level-0>
Как я могу щелкнуть дочерний элемент в выбранном элементе?
Ответ №1:
Одной из альтернатив было бы использовать find()
cy.get("tr:contains('testName12')", { timeout:20000}).find('.anticon-delete').click({force: true})
Ответ №2:
Следуя вашему подходу, я бы предложил следующие изменения с использованием родителей
cy.contains('td', 'testName12')
.parents('tr')
.children('.anticon-delete')
.click({force: true})
Редактировать: если родительский подход не работает, я бы попробовал использовать внутри
cy.get("tr:contains('testName12')", { timeout:20000})
.within(()=>{
cy.get('.anticon-delete').click({force: true})
})
Комментарии:
1. Ошибка: время ожидания истекло при повторной попытке: ожидалось найти элемент: .anticon-delete, но так и не нашел его. Запрос из элемента: <tr.ant-table-row.ant-table-row-level-0> в .children(‘.anticon-delete’)