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);
    }
  }

不能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?
    });
  });
});

最新更新