Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Atata:找不到复选框元素_C#_Automated Tests_Ui Automation_Atata - Fatal编程技术网

C# Atata:找不到复选框元素

C# Atata:找不到复选框元素,c#,automated-tests,ui-automation,atata,C#,Automated Tests,Ui Automation,Atata,当我在复选框元素上使用[VerifyExists]时,我收到一个错误,尽管当我使用通过框架生成的XPath时,我可以找到该元素 错误消息: Message: OpenQA.Selenium.NoSuchElementException : Unable to locate element: By.XPath: .//*[normalize-space(@id) = 'active-checker']/descendant-or-self::input[@type='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; }
[验证存在]
[FindById(“ISCOMMENTREQUIRED检查器”)]
public CheckBox RequestsWorklogCommentCheckBox{get;private set;}
手动搜索元素:

[VerifyExists]
[FindById("isCommentRequred-checker")]
public CheckBox<_> RequestsWorklogCommentCheckBox { get; private set; }

我猜这是因为实际的
在页面上是不可见的(或者具有
不透明度:0
)。默认情况下,大多数控件的Atata在控件元素搜索期间按可见性过滤元素,并且只保留可见元素

尝试设置
可见性=可见性。任何

[FindById("isCommentRequred-checker", Visibility = Visibility.Any)]
通常复选框和单选按钮是不可见的,而其他元素渲染它并接收单击。只需检查HTML,然后尝试使用Atata或纯WebDriver单击它。如果它抛出异常,您可能需要实现自定义控件,以便它单击例如
span.control label
元素


下面是剑道UI复选框的控制示例:

比你强,耶![VerifyExists][FindById(“活动检查器”,可见性=可见性.Any)]对我有效。这也解决了我在RadioButton上遇到的问题,尽管最终我必须通过XPath访问标签才能获得它。