WebDriverJS 控制流程

WebDriverJS control flow

Protractor 在底层使用 WebDriverJS。

WebDriverJS 使用 "control flow" 的概念来确保异步任务以预期的确定顺序执行。

因此以下将按预期工作:

myElement.click();
browser.executeScript(...);

但是,如果我将一个函数添加到浏览器上这些函数之一返回的 promise 的 then 中,一切都会继续以预期的方式工作吗?

例如:

browser.executeScript(...).then(function() {
  browser.navigate(...);
});

上面的代码会保持控制流吗?

应该是。在 WebDriverJs' documentation:

中称为框架
flow.execute(function() {
  console.log('a');
}).then(function() {
  flow.execute(function() {
    console.log('c');
  });
});

flow.execute(function() {
  console.log('b');
});

// a
// c
// b