Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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
Javascript (量角器)检查是否在单击时禁用输入?_Javascript_Angularjs_Protractor_Angularjs E2e - Fatal编程技术网

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",
    ...
   }