this.url 不是函数

this.url is not a function

在 Nightwatch 中,我正在尝试编写一个命令来检查当前页面的 url。

当我直接在测试文件中写这个时,它看起来像这样:

browser.url(function (result) {
    browser.assert.equal(result.value,expectedPageUrl);
});

这非常有效,returns 预期结果。但是,当我尝试将它移动到 pageObject 文件中并像这样修改它时:

checkUrl: function (expectedUrl) {
    var _this= this;
    this.url(function (result) {
        _this.assert.equal(result.value,expectedUrl);
    });
}  

这个returns错误

TypeError: this.url is not a function

我在这里错过了什么?

你得到的错误很可能是因为'url'没有在你的第二个函数中定义,在这个对象中。

解决该问题的一种方法是尝试将该浏览器对象作为参数传递到 checkUrl 函数中。然后调用它:

checkUrl: function (browser, expectedUrl) {  
    browser.url(function (result) {
        _this.assert.equal(result.value,expectedUrl);
    });
}