browser.url(url) - 浏览器无法在回调函数中打开

时间:2017-03-22 15:57:19

标签: url browser nightwatch.js

我正在尝试使用动态创建的网址打开浏览器(需要首先获取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)

1 个答案:

答案 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");
    }
}