【问题标题】:Protractor get elements by repeater量角器通过中继器获取元素
【发布时间】:2017-09-08 06:43:58
【问题描述】:

生成后,我在浏览器中的 HTML 中看到了这个:

<!-- ngRepeat: (promptId, q) in questions -->

我想获取第一个元素,所以我使用:

  it('add new comment thread', function () {
    element.all(by.repeater('(promptId, q) in questions')).first().click();
  });

但我得到一个错误:

失败:索引超出范围。试图访问索引处的元素:0,但是 只有 0 个元素匹配 locator by.repeater("(promptId, q) 在问题中")

这里明明至少有一个子元素,我是不是用错了by.repeater?

【问题讨论】:

    标签: angularjs protractor angularjs-ng-repeat


    【解决方案1】:

    一般来说,如果不了解特定应用程序的特定测试中实际发生的情况,就很难回答此类问题。

    首先,请注意,即使没有重复元素,该注释也会存在


    这可能是一个“时间问题”,等待元素的出现会有所帮助

    var prompt = element.all(by.repeater('(promptId, q) in questions')).first();
    var EC = protractor.ExpectedConditions;
    
    browser.wait(EC.presenceOf(prompt), 5000);
    prompt.click();
    
    // TODO: your expectation here
    

    当然,当您尝试单击该元素时,请确保您位于预期的页面上,并且转发器实际上包含/提供了数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多