无法从pageObject传递值,请返回规范以验证该值是否符合预期的assert语句。

pageObject.js

this.CampaignTitle = function() {
        element.all(by.repeater('campaign in campaigns')).then(function(campaigns) {
            var title = campaigns[0].element(by.className('campaign-title'));
            title.click();
            return title;
        });
    }


spec.js

it('Clicking on campaign title should take to campaign report', function() {
    dashboardPage.CampaignTitle();
    expect(dashboardPage.CampaignTitle().getText()).toContain(browser.params.campaignTitle);
});


我得到的错误是

1)测试广告系列仪表板按钮单击广告系列标题应进入广告系列报告
  -失败:无法读取未定义的属性'getText'

或者如果我将标题添加到

  expect(dashboardPage.CampaignTitle(title).getText()).toContain(browser.params.campaignTitle);


我懂了

1)测试广告系列仪表板按钮单击广告系列标题应进入广告系列报告
  -失败:标题未定义

最佳答案

不要使用括号表示法从ElementArrayFinder检索元素,请使用.get()。另外,我将实现这一点有些不同,您可以不使用.then()来执行此操作;

this.CampaignTitle = function() {
    var title = element.all(by.repeater('campaign in campaigns')).get(0).element(by.className('campaign-title'));
    return title;
}


spec.js

dashboardPage.CampaignTitle().click();
expect(dashboardPage.CampaignTitle().getText()).toContain(browser.params.campaignTitle);

08-19 00:45