量角器从承诺的下拉列表中选择值

时间:2014-10-03 18:27:18

标签: angularjs protractor

我正在进行量角器测试并填写带有下拉列表的表格。如何确保每个下拉列表都有一个已解决的承诺,然后再转到下一个下拉列表?现在我正在使用睡眠,并知道这不是正确的方法。

  Describe('Filling site utility form', function() {
      beforeEach(function(){
        var input_monthly = by.linkText('Input Monthly');

        browser.wait(function() {
          return browser.isElementPresent(input_monthly);
        });

        var field1 = element(by.id('field1'));
        Test.dropdown(field1, 1);

        var field2 = element(by.id('field2'));
        Test.dropdown(field2, 1);
   });

我的下拉功能是:

 dropdown = function(element, index, milliseconds) {
    element.findElements(by.tagName('option'))
      .then(function(options) {
        options[index].click();
      });
    if (typeof milliseconds !== 'undefined') {
      browser.sleep(milliseconds);
    }
  }

1 个答案:

答案 0 :(得分:0)

不是100%肯定你的意思,但我怀疑你对此感兴趣的是:

describe('Filling site utility form', function() {
  beforeEach(function(){
    var input_monthly = by.linkText('Input Monthly');

    browser.wait(function() {
      return browser.isElementPresent(input_monthly);
    });

    var promise1 = element(by.id('field1')).all(by.tagName('option')).get(1).click();
    var promise2 = element(by.id('field2')).all(by.tagName('option')).get(1).click();

    protractor.promise.all([promise1, promise2]).then(function() {
      //what do you want to do next?
    });
  });
});