2014-02-18 21 views
18

我有兩個輸入字段,用戶名和密碼和一個微調按鈕。當我點擊這個微調按鈕時,這兩個輸入字段被禁用,我被重定向到另一個頁面。我正在編寫一個端到端測試來檢查這些輸入字段是否被禁用。(量角器)檢查點擊時輸入是否被禁用?

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); 

回答

1

您可以使用get屬性的方法:

expect(loginInput.getAttribute('disabled')).toEqual('disabled'); 
48

expect(loginInput.getAttribute('disabled')).toEqual('disabled'); 

前面的例子不會爲如果事情已啓用檢查工作。

您應該使用

expect(loginInput.isEnabled()).toBe([true|false]); 

如果事情是允許/禁止準確地驗證。

如果這不適合你,可能還有其他事情正在進行。

+2

泰勒說得對,'isEnabled()'是正確的方法。雖然它應該是小寫'I',所以正確的行將是'expect(loginInput.isEnabled())。toBe([true | false])''。有關更多信息,請參見[docs](https://github.com/angular/protractor/blob/master/docs/api.md#api-webdriver-webelement-prototype-isenabled)。 –

+0

'isEnabled()'很好,應該被認爲是正確的答案。我發現'expect(loginInput.getAttribute('disabled'))。toEqual('disabled');'不工作,除非我有'toEqual('true')'。 'isEnabled()'是一個更清潔的解決方案。 – DarthOpto