Atata:无法找到CheckBox元素

时间:2019-01-25 14:51:48

标签: c# automated-tests ui-automation atata

我在[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 :(得分:2)

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