2014-01-17 358 views
0

我想開始測試我的角度應用程序,但我不知道如何點擊一個元素。 我的頁面使用選項卡:如何點擊角度e2e測試

<tabset> 
<tab heading="Connect" > 
    <h1>Connect</h1> 
</tab> 
<tab heading="Sign in with Email"> 
    <h1>Sign in</h1> 
</tab> 
</tabset> 

這完美的作品我能夠manualy點擊選項卡和切換他們。 但是,當我想運行測試點擊不起作用:

describe "sign",() -> 
    it "should display tabs",() -> 
     browser().navigateTo "/index.html" 
     expect(repeater('.nav li').count()).toEqual 2 
     expect(element('.nav li:eq(0)').text()).toContain 'Connect' 
     expect(element('.nav li:eq(1)').text()).toContain 'Sign in with Email' 

    it "should should switch tabs on click",() -> 
     browser().navigateTo "/index.html" 
     element('.nav li:eq(0)').click() 
     expect(element('div.active h1').text()).toContain 'Connect' 
     element('.nav li:eq(1)').click() 
     expect(element('div.active h1').text()).toContain 'Sign in' 

首先測試通過這樣的角度是能夠找到導航按鈕,但第二次測試失敗。 Angular無法切換標籤頁。當我第二次點擊後進入睡眠狀態時,我可以看到標籤沒有被切換。錯誤看起來像這樣:

Chrome 32.0.1700 (Linux) sign should should switch tabs on click FAILED 
    expect element 'div.active h1' text toContain "Sign in" 
    http://localhost:8080/base/test/e2e/sign.js?1389970853000:16:12: expected "Sign in" but was "Connect" 
Chrome 32.0.1700 (Linux): Executed 2 of 2 (1 FAILED) (10.378 secs/9.868 secs) 

任何幫助爲什麼這個點擊不起作用?

+0

Tabs指令是從角ui bootstrap:http://angular-ui.github.io/bootstrap/#/tabs –

回答

0

也許第一次點擊甚至沒有觸發,並且倒數第二個斷言不會失敗,因爲「連接」是默認值。

嘗試找到一個更智能的元素點擊。對選擇器更精確。如果它仍然不起作用,你能顯示tab指令的代碼嗎?

+0

感謝您的答案。你是對的。當我將選擇器更改爲:'.nav li:eq(1)a'時,它開始工作。我沒有注意到LI元素裏面有鏈接。謝謝。 –