如何检查量角器中是否存在属性?我有元素
<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;
但这会检查此属性的值,而不是它是否存在。
答案 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