【问题标题】:how to wait for drop down population before executing protractor e2e tests?如何在执行量角器 e2e 测试之前等待下拉人口?
【发布时间】:2015-09-30 03:50:31
【问题描述】:

我正在测试一个场景,其中根据服务调用和 http get 的响应填充了 3 个复选框。

我遇到的是,当我使用protractor conf.js 运行测试时,下拉菜单中尚未填充来自 http get 响应的响应,因此当我尝试测试任何内容时,浏览器停止并且测试失败。

有没有办法让量角器可以等待,然后再对要填充的下拉列表运行测试?

conf.js:
// An example configuration file.
exports.config = {
  //directConnect: true,

  // Capabilities to be passed to the webdriver instance.
  capabilities: {
    'browserName': 'chrome'
  },

  // Framework to use. Jasmine 2 is recommended.
  framework: 'jasmine2',

  // Spec patterns are relative to the current working directly when
  // protractor is called.
  specs: ['e2e/*.js'],

  baseUrl: 'http://localhost:4000/',


  // Options to be passed to Jasmine.
  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000
  }
};

test file:

var select = element(by.model('make'));
console.log(select);
select.$('[value="acura"]').click();

这在单击事件上失败,因为当此测试运行时,选择没有选项元素,因为选择是从 json http get 响应中填充的。

提前致谢!!

【问题讨论】:

    标签: angularjs protractor e2e-testing


    【解决方案1】:

    你可以试试下面的方法;在调用点击之前。

    browser.waitForAngular();
    

    【讨论】:

    • 访问选择应该通过量角器完成,使用browser.driver.isElementPresent(elementToFind).then(function(isPresent){ element(elementToFind).click }
    【解决方案2】:

    使用量角器的内置wait() 方法,使用ExpectedConditions,期望下拉列表被填充。方法如下-

    var select = element(by.model('make'));
    browser.wait(protractor.ExpectedConditions.presenceOf(select.$('[value="acura"]')), 10000)
    .then(function(){
        select.$('[value="acura"]').click();
    });
    

    希望对您有所帮助。

    【讨论】:

    • 这是我得到的:消息:失败:等待 10004 毫秒后超时 - 任何想法
    • @jp310 你能更新下拉菜单的 html 代码吗?填充选项需要多长时间?
    【解决方案3】:

    使用browser.wait()-

    browser.wait(function(){
         return elementPresent.isPresent();
         }).then(function(){
             element.click();
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多