2016-07-25 52 views
2

我正在寫一個測試protractor,我的目的是點擊一個元素,並檢查它是否有特定的class。問題是,我使用click(),其次是then(),但我收到以下錯誤:Click()然後()不起作用 - 量角器

Cannot read property 'getAttribute' of null 

問題位於下面的代碼塊:

element(by.css('#region1 polygon:first-child')).click() 
    .then(function(selected){ 
     expect(selected.getAttribute('class')).toContain('highlighted'); 
    }); 

你有一個關於如何解決這個問題的想法?提前感謝您的回覆!!

回答

3

click()回調沒有元素本身作爲參數。換句話說,在你的情況下,selected不是一個元素。

相反,只是一步一步,讓Control Flow隊列做的工作:

var elm = element(by.css('#region1 polygon:first-child')); 

elm.click(); 
expect(elm.getAttribute('class')).toContain('highlighted'); 

注意toContain()沒有申請到class屬性值的最佳匹配。例如,如果一個元素有一個not-highlighted類,則此測試會通過。一個更好的辦法來做到這一點是引入定製toHaveClass匹配,請參閱: