Atata: невозможно найти элементы CheckBox - PullRequest
0 голосов
/ 25 января 2019

Я получаю сообщение об ошибке, когда использую [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; }

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

enter image description here

1 Ответ

0 голосов
/ 25 января 2019

Я думаю, это потому, что фактический <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

...