2014-01-29 209 views
8

我需要檢查與量角器,如果在我的角度應用程序的按鈕啓用後,所以這是我的測試:如何檢查元素是否啓用

it('submit should not be enabled',function() { 
     var price = by.name('price'), 
      oldCategory = by.name('oldCategory'), 
      newCategory = by.name('newCategory'), 
      oldPayment = by.name('oldPayment'), 
      newPayment = by.name('newPayment'), 
      item = by.name('item'), 
      submit = by.id('submitButton'); 
     expect(submit.isEnabled().toBe(false)); 
    }); 

當我運行測試,得到這個錯誤:

TypeError: Object By.name("price") has no method 'isEnabled' 
+0

不確定爲什麼'ByEnabled'正在By.name(「price」)上被調用。 –

+0

謝謝,我該怎麼辦? – arpho

+0

我的意思是我沒有在示例代碼中看到對象'By.name(「price」)上調用'isEnabled'方法的地方,因爲錯誤似乎表明。 –

回答

14

括號在expectation放錯位置:

expect(submit.isEnabled().toBe(false)); 

它應該是:

expect(submit.isEnabled()).toBe(false); 

你濫用protractor locator

submit = by.id('submitButton'); 

它應該是:

submit = element(by.id('submitButton')); 

您可以在specs of protractor中找到很多示例。

+0

它不起作用: TypeError:Object By.id(「submitButton」)沒有方法'isEnabled' – arpho

+0

@arpho我更新我的答案來解決這個問題。 – gontard

1

嘗試以下操作:

submit = element(by.id('submitButton')); 
+0

現在我得到這個錯誤:TypeError:Object [object Object]沒有方法'toBe' – arpho

+0

你expect: submit.isEnabled()。toBe(false));',我認爲在'isEnabled()'後面缺少了一個結束符。它應該是:'expect(submit.isEnabled())。toBe(false));' – tennisgent

+0

不應該是'expect(submit.isEnabled())。toBe(false);' – ruurd