我需要在 webdriverJS 测试脚本中执行一些节点需要命令,因为这些不会进入 webdriverJS 命令队列,我将它们包装在.then()
函数中(以处理异步)
例如
var webdriver = require('selenium-webdriver');
// create webdriver instance so promise chain can be setup
var promise_builder = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).
build();
// wrap all functions in webdriver promises so they get managed by webdrivers
// command queue
promise_builder.sleep(0).then(function() {
// Run "non-command-queue" commands
var tests = require('./test_commands');
tests(helpers, setup, webdriver, driver);
}).then(function(){
// more non-webdriver commands
});
这里的问题(除了它不优雅的事实)是启动了浏览器实例 - 只是为了实现承诺链。
是否有更好的方法来创建初始承诺,例如 webdriver api 中用于创建承诺的静态方法?