首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量角器-此处使用的预期条件是什么?

量角器-此处使用的预期条件是什么?
EN

Stack Overflow用户
提问于 2020-07-06 19:44:33
回答 1查看 52关注 0票数 0

我有3个标签,我需要测试它们是否被点击,但我似乎找不到一个好的预期条件来使用。现在我正在使用浏览器。睡眠时间更长,因为加载标签需要几秒钟的时间。

选项卡:

代码:

代码语言:javascript
复制
let locator = {

  upcomingTabButton : element(by.css('div.toolbar-content.toolbar-content-md ion-segment ion-segment-button:nth-child(1)')),
  pendingTabButton : element(by.css('div.toolbar-content.toolbar-content-md ion-segment ion-segment-button:nth-child(2)')),
  completedTabButton : element(by.css('div.toolbar-content.toolbar-content-md ion-segment ion-segment-button:nth-child(3)')),
  activeTab : element(by.css('ion-segment ion-segment-button.segment-button.segment-activated')),
  upcomingActiveTab: element(by.cssContainingText('ion-segment ion-segment-button.segment-button.segment-activated', 'UPCOMING')),


};


describe('When x tab button is pressed, ', function () {

  it('if x = PENDING tab, then it should be activated', () => {
    browser.sleep(1000);
    browser.wait(EC.elementToBeClickable(locator.pendingTabButton),5000);
    locator.pendingTabButton.click();
    browser.sleep(10000);
    expect(element(by.css('ion-segment ion-segment-button.segment-button.segment-activated')).getText()).toEqual('PENDING');
  });


  it('if x = UPCOMING tab, then it should be activated', () => {

    browser.wait(EC.elementToBeClickable(locator.upcomingTabButton),5000);
    locator.upcomingTabButton.click();
    //browser.wait(EC.presenceOf(locator.upcomingActiveTab),5000);
    browser.sleep(10000);
    expect(element(by.css('ion-segment ion-segment-button.segment-button.segment-activated')).getText()).toEqual('UPCOMING');

  });

  it('if x = COMPLETED tab, then it should be activated', () => {

    browser.wait(EC.elementToBeClickable(locator.completedTabButton),5000);
    locator.completedTabButton.click();
    //browser.wait(EC.presenceOf(locator.activeTab),5000);
    browser.sleep(10000);
    expect(element(by.css('ion-segment ion-segment-button.segment-button.segment-activated')).getText()).toEqual('COMPLETED');
  });
});

我尝试了一些预期的条件,但都不起作用,因为我需要查看选项卡何时被选中,并且我没有发现任何类似的exp条件。

我使用的是browser.sleep(10000) 10秒,但这不是一个好的使用方式。

有人能帮我吗?

选项卡内容大约需要5/6秒才能加载

EN

回答 1

Stack Overflow用户

发布于 2020-07-06 20:03:03

代码语言:javascript
复制
/**
 * wait until some element is present
 * 
 */
this.waitElement = function(ElmFinder){
    var i = 0;
    var _retryOnErr = function(err) {
        console.log(' <<< warning: wait retrying iteration: ' + i + ' >>> ');
        browser.sleep(500);
        return false;
    };

    browser.wait(function() {
        i++;
        return ElmFinder.isDisplayed().then(function(present) {
            if (present) {
                return true;
            } else {
                console.log("element is not present");
                return _retryOnErr();
            }
        }, _retryOnErr);
    }, 120*1000, 'Error waiting for element present: ').
    then(function(waitRetValue) {
        return waitRetValue; // usually just `true`
    }, function(err) {
        throw err + ' after ' + i + ' iterations.';
    });
};
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62755364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档