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