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
当我在 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