Atata: невозможно найти элементы CheckBox

Я получаю сообщение об ошибке при использовании [VerifyExists] на CheckBox элемент, хотя, когда я использую XPath который генерируется через структуру, я могу найти элемент.

Сообщение об ошибке:

Message: OpenQA.Selenium.NoSuchElementException : Unable to locate element: By.XPath: .//*[normalize-space(@id) = 'active-checker']/descendant-or-self::input[@type='checkbox']

Реализация:

[VerifyExists]
[FindById("isCommentRequred-checker")]
public CheckBox<_> RequestsWorklogCommentCheckBox { get; private set; }

Ручной поиск элемента:

1 ответ

Решение

Я думаю, что это потому, что актуально <input type="checkbox"> является невидимым (или имеет opacity: 0) на странице. Atata по умолчанию для большинства элементов управления фильтрует элементы по видимости во время поиска элемента управления и оставляет только видимые элементы.

Попробуйте установить Visibility = Visibility.Any:

[FindById("isCommentRequred-checker", Visibility = Visibility.Any)]

Часто флажки и переключатели становятся невидимыми, а другой элемент отображает их и получает щелчки. Просто просмотрите HTML, а затем попробуйте щелкнуть его с помощью Atata или чистого WebDriver. Если он выдает исключение, вам, вероятно, потребуется реализовать пользовательский элемент управления, например, для щелчка span.control-label элемент.

Вот пример элемента управления для Kendo UI CheckBox: https://github.com/atata-framework/atata-kendoui/blob/master/src/Atata.KendoUI/KendoCheckBox%601.cs

Другие вопросы по тегам