我试过以下方法
1)使用isEnabled api
expect(locator.isEnabled()).toEqual('false');
但它失败了,因为API总是返回true。
2)使用禁用属性
expect(locator.getAttribute('disabled')).toEqual('disabled');
但它失败了,因为API返回null
答案 0 :(得分:0)
disabled属性的类型为boolean,因此将返回true或false。
isEnabled调度命令以查询是否启用了此实例所表示的DOM元素,如disabled属性所指示的那样。
因此,在您的情况下,使用isEnabled时应使用以下断言:
expect(locator.isEnabled()).toBe(false);
getAttribute计划命令以查询元素的给定属性的值。它将返回当前值。 getAttribute返回一个字符串,因为disabled属性被认为是一个布尔值,它将返回string类型的'true'或null。
使用getAttribute时,您应该使用以下断言:
expect(locator.getAttribute('disabled')).toEqual('true');
答案 1 :(得分:0)
据我所知,有两种方法可以在Web开发中归档元素禁用。
1)使用disabled
属性,仅适用于表单控件元素
注意:如果Form Control元素定义了disabled
属性,则无论属性值是'disabled','true','false','1234'还是其他任何内容。 Selenium isEnabled()将始终返回true
在这种情况下,您可以使用:expect(locator.isEnabled()).toEqual()
2)使用CSS& JavaScript,适用于任何HTML元素
注意:在大多数时候,使用CSS&用于存档禁用目标的JavaScript方式,开发人员将在元素属性class
中添加类名称:'invalid','disable','ng-invalid'。
在这种情况下,您可以使用:expect(locator.getAttribute('class')).toContain('xxx')
在决定如何编写脚本以进行检查之前,您需要找出开发人员在元素上使用的方式。