使用量角器进行e2e测试时如何点击离子标签

时间:2018-04-07 06:33:28

标签: angular ionic-framework protractor e2e-testing

我尝试了很多方法,但仍然有问题。 这是我的tabs.html

<ion-tab class="tab1" [root]="tab1Root" tabTitle="Forum"    tabIcon="home"></ion-tab>
<ion-tab class="tab2" [root]="tab2Root" tabTitle="Chat"     tabIcon="information-circle"></ion-tab>
<ion-tab class="tab3" [root]="tab3Root" tabTitle="MyOLLE"   tabIcon="contacts"></ion-tab>

这是我的第一个tabs.e2e-spec.ts

var chat = element(by.tagName('ion-tab[tabTitle="Chat"]')).getWebElement();
browser.actions().mouseMove(chat).click().perform();
browser.sleep(6000);

上述代码的问题在于,它在运行测试时实际上没有进入聊天页面。

我的第二次测试

var chat = element(by.tagName('ion-tab[tabTitle="Chat"]'));
chat.click();

这会告诉我

  

失败:元素不可见

有谁能告诉我如何点击标签或如何重定向到我想要的页面?

2 个答案:

答案 0 :(得分:0)

如果它是茉莉花的量角器,你可以试试这个

element(by.className('.tab2')).click();

get chatTab() {return $(.tab2);}
// This is the normal 
// Page Object
// Model
public chatClick()
{
chatTab().click();
}

答案 1 :(得分:0)

离子的每个标签都有 id 。如果你打开开发工具,你可以看到它。 要导航到我创建此方法的选项卡:

import {element, by} from 'protractor';

navigateToTab(tabName: 'Forum' | 'Chat' | 'MyOLLE') {
    let id;
    switch(tabName) {
        case 'Forum':
            id = 'tab-t0-0';
        break;
        case 'Chat':
            id = 'tab-t0-1';
        break;
        case 'MyOLLE':
            id = 'tab-t0-2';
        break;
    }
    return element(by.id(id)).getWebElement().click();
}

希望它有所帮助。如果您有任何疑问,请告诉我