Javascript (量角器)检查是否在单击时禁用输入?
我有两个输入字段,用户名和密码以及一个微调器按钮。当我点击这个微调器按钮时,这两个输入字段被禁用,我被重定向到另一个页面。我正在编写一个端到端测试,以检查这些输入字段是否被禁用Javascript (量角器)检查是否在单击时禁用输入?,javascript,angularjs,protractor,angularjs-e2e,Javascript,Angularjs,Protractor,Angularjs E2e,我有两个输入字段,用户名和密码以及一个微调器按钮。当我点击这个微调器按钮时,这两个输入字段被禁用,我被重定向到另一个页面。我正在编写一个端到端测试,以检查这些输入字段是否被禁用 element(by.model('username')).sendKeys('rabi'); element(by.model('password')).sendKeys('rabi'); /* click on spin button */
element(by.model('username')).sendKeys('rabi');
element(by.model('password')).sendKeys('rabi');
/* click on spin button */
spinBtn = element(by.className('call-to-action'));
spinBtn.click();
/* check if input is disabled */
var loginInput = element(by.id('login-username'));
expect(loginInput.isEnabled()).toBe(false);
前面的例子
expect(loginInput.getAttribute('disabled')).toEqual('disabled');
无法检查是否启用了某些内容
你应该使用
expect(loginInput.isEnabled()).toBe([true|false]);
准确验证某项功能是否已启用/禁用
element(by.model('username')).sendKeys('rabi');
element(by.model('password')).sendKeys('rabi');
/* click on spin button */
spinBtn = element(by.className('call-to-action'));
spinBtn.click();
/* check if input is disabled */
var loginInput = element(by.id('login-username'));
expect(loginInput.isEnabled()).toBe(false);
如果这对你不起作用,可能还有别的事情发生。我想补充一点,那就是@的答案(投票最多的答案)非常好,并为此感谢他
// passes when the button does not have 'disabled' attribute
expect($('#saveChangesBtn').isEnabled()).toBe(true);
但是,当我尝试运行此操作时,出现了一个错误:
Error: TSError: ⨯ Unable to compile TypeScript e2e/specs/element.e2e-spec.ts:
Argument of type 'false' is not assignable to parameter of type 'Expected<Promise<boolean>>'.
这样,typescript就不会再有错误了,它解决了这个问题。
P.s.版本2.0.6是写这篇文章时的最新版本,魔术版可能会因您的情况而有所不同
因此,如果这里有人有这个问题,这是投票最多的答案的补充。泰勒是对的,
isEnabled()
是正确的方法。它应该是小写的I
,因此正确的行应该是expect(loginInput.isEnabled()).toBe([true | false])
。有关更多信息,请参阅。isEnabled()
非常有效,应该被认为是正确答案。我发现expect(loginInput.getAttribute('disabled')).toEqual('disabled')除非我有toEqual('true')
,否则code>不起作用isEnabled()
是一种更干净的解决方案。
"devDependencies": {
...,
"@types/jasminewd2": "2.0.6",
...
}