Я пытаюсь выполнить некоторые автоматические тесты с использованием селена в приложении Angular. Один тест включает нажатие на заголовок сортировки матов. Мне не удалось найти способ щелкнуть заголовок с помощью селена.
Таблица будет сортироваться правильно, когда я щелкаю по ней, но я не могу отсортировать таблицу с помощью Selenium.
<table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="Header">
<th mat-header-cell *matHeaderCellDef mat-sort-header="Header">Header</th>
<td mat-cell *matCellDef="let row">{{row.title}}</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns"</tr>
</table>
Мой первоначальный подход, который не сработал.
sort_header = driver.find_element_by_xpath("//th[contains(@aria-label, 'Change Sorting for Header')]")
sort_header.click()
Мой второй подход, который также не сработал.
js = "document.querySelector('[aria-label="Change Sorting for Header"]').click();"
driver.execute_script(js)
ПервыйПодход дает ошибку «Сообщение: элемент не взаимодействует». Я могу консоль войти в правильную кнопку во втором подходе (который печатает элемент кнопки на консоли), изменив код JS. Тем не менее, элемент не сортируется при выполнении JavaScript.