2014-01-17 54 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元素里面有链接。谢谢。 –