WebDriverJS和Protractor本身完全基于promise的概念:
WebDriverJS(因此,Protractor)API是完全异步的。所有函数都返回promises。 WebDriverJS维护一个待处理promise队列,称为控制流,以保持执行有序。
根据定义:
Promise是表示值或值的最终计算的对象。每个promise都始于未决状态, 可以成功解决为值,也可以被拒绝以指定错误。
关于promise rejection的最后一部分是我不完全理解并且在Protractor中没有处理过的内容。我们看到并编写的常见模式是使用then()
并针对成功解决的promise提供一个函数:
element(by.css("#myid")).getAttribute("value").then(function (value) {
// do smth with the value
});
问题:
Protractor/WebDriverJS 的任何函数返回的 Promise 是否可能无法成功解决并被拒绝?我们是否应该担心并处理它?