【问题标题】:protractor.js Expected[] to equal ["...","..."]protractor.js 预期 [] 等于 ["...","..."]
【发布时间】:2016-09-11 01:16:49
【问题描述】:

我正在尝试做 angular js 教程,但我无法理解这个错误。 代码: var phoneNameColumn = element.all(by.repeater('phone in phone').column('phone.name'));

      function getNames() {
        return phoneNameColumn.map(function(elm, index) {
          return elm.getText();
        });
      }

      expect(getNames()).toEqual([
        "Motorola XOOM\u2122 with Wi-Fi",
        "Motorola XOOM\u2122"
      ]);

当我运行 npm run protractor 时,我看到这个错误消息 Expected[] to equal ["Motorola XOOM\u2122 with Wi-Fi","Motorola XOOM\u2122"]

【问题讨论】:

    标签: javascript angularjs node.js protractor


    【解决方案1】:

    我会从使用 .column() 切换到:

    function getColumnNames() {
        return element.all(by.repeater('phone in phones')).map(function(elm, index) {
          return elm.element(by.binding('phone.name')).getText();
        });
    }
    
    expect(getColumnNames()).toEqual([
        "Motorola XOOM\u2122 with Wi-Fi",
        "Motorola XOOM\u2122"
    ]);
    

    而且,我还要add a wait 使测试更稳定:

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.presenceOf(element(by.binding('phone.name'))), 5000);
    
    expect(getColumnNames()).toEqual([
        "Motorola XOOM\u2122 with Wi-Fi",
        "Motorola XOOM\u2122"
    ]);
    

    【讨论】:

    • 我尝试了你的建议,但我得到 NoSuchElement 错误:使用定位器找不到元素:by.binding('phone.name')
    • @JoãoHenriqueSouza 好的,更新了答案 - 看看它是否有帮助。
    • @alexce,非常感谢你,测试正在运行。
    猜你喜欢
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2016-11-24
    • 2017-04-19
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多