Atata:无法找到 CheckBox 元素

Atata: Unable to locate CheckBox elements

当我在 CheckBox 元素上使用 [VerifyExists] 时收到错误消息,尽管当我使用通过框架生成的 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; }

手动搜索元素:

我猜这是因为实际的 <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