量角器如何检查属性是否存在?

时间:2017-10-26 08:32:34

标签: javascript protractor

如何检查量角器中是否存在属性?我有元素

<input class="x" type="checkbox" id="checkbox1" value="undefined" disabled name="checkboxname1" tabindex="0" aria-label="">

我想检查是否存在禁用属性。

我试过了:

const isDisabled: boolean = await field.getAttribute('disabled') === null ? true : false;

但这会检查此属性的值,而不是它是否存在。

3 个答案:

答案 0 :(得分:0)

您可以使用elementToBeClickable()方法查找元素是否已禁用。

<强> CODE:

var EC=protractor.ExpectedCondiditons;
var field=/*input filed locator*/ 

expect(EC.elementToBeClickable(field)).toBe(false)

/*EC.elementToBeClickable(field) - return true if element is enabled or 
/*false*

答案 1 :(得分:0)

在我的测试中,我等到属性不存在。 我是通过代码

完成的
await browser.wait(async () => await this.loginButton.getAttribute('disabled') === null);

当您为不存在的属性调用getAttribute()时,它将返回null。

答案 2 :(得分:0)

具有特定属性的元素的CSS引用为[attribute]。所以你可以这样做:

const disabledCheckbox1 = '#checkbox1[disabled]';    
const isCheckbox1Disabled = await $(disabledCheckbox).isPresent();

其中$(...)element.by(css(...))

的快捷方式

或者如果你想让它更通用:

const element = '#checkbox1';
const attribute = 'disabled';
const isElementDisabled = await $(`${element}[${attribute}]`).isPresent();

希望这有帮助!

这里有一个很好的参考,你可以做的各种CSS选择器魔术:this article