3

Protractor 在后台使用 WebDriverJS。

WebDriverJS 使用“控制流”的概念来确保异步任务以预期的确定顺序执行。

因此,以下将按预期工作:

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

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

例如:

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

上面的代码会维护控制流吗?

4

1 回答 1

6

应该。它在WebDriverJs 的文档中称为框架:

flow.execute(function() {
  console.log('a');
}).then(function() {
  flow.execute(function() {
    console.log('c');
  });
});

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

// a
// c
// b
于 2015-06-25T11:15:24.617 回答