Protractor或WebDriverJS是否确保语句按顺序执行和完成?

时间:2017-06-30 04:41:28

标签: javascript selenium-webdriver protractor

我一直在阅读WebDriverJS控制流程和Protractor: http://www.protractortest.org/#/control-flow,我对说明感到困惑:

  it('should find an element by text input model', function() {
    browser.get('app/index.html#/form');

    var username = element(by.model('username'));
    username.clear();
    username.sendKeys('Jane Doe');

    var name = element(by.binding('username'));

    expect(name.getText()).toEqual('Jane Doe');

    // Point A
  });

它说:

'在A点,尚未执行任何任务。 browser.get调用位于控制流队列的前面,name.getText()调用位于后面。 A点的name.getText()值是一个未解析的promise对象。

'Protractor调整Jasmine,以便每个规范在退出前自动等待控制流为空。'

从上面看来,似乎WebDriverJS只能保证声明按顺序执行而不是一个接一个地完成。然而量角器会这样做是因为它会等待前一个语句在执行下一个之前完成控制流程吗?

但我也找到了对控制流的其他描述:

https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/promise_exports_ControlFlow.html

其中说'控制流将确保任务按照计划的顺序执行,仅在完成每项任务之前完成'

这是真的吗?控制流程是做工作还是量角器做的?

谢谢,

0 个答案:

没有答案