我正在尝试使用动态创建的网址打开浏览器(需要首先获取accessToken并包含在网址中) -
openDocument(browser,username,password) {
this.getAccessToken(username,password,(accessToken) => {
var url = browser.launch_url.replace("accessTokenValue", accessToken);
browser.url(url);
})
}
由于某种原因,当client.url(url)是回调函数的一部分时,浏览器不会打开。 如果我将它移到回调函数之外它工作正常并打开浏览器(但我还没有accessToken)
答案 0 :(得分:0)
我对Nightwatch有点新意,但我想如果你想在回调中执行异步操作或(如文档所说)“读取其他命令设置的变量”,你可以使用browser.perform来管理事件完成。这是一个在回调中调用.url
的工作示例:
module.exports = {
'example' : function(browser) {
var getAccessToken = function(fn) {
setTimeout(fn, 1000);
};
browser
.perform(function(client, done) {
getAccessToken(function() {
client.url("http://stackoverflow.com", done);
});
})
.waitForElementVisible("#mainbar");
}
}