Nightwatch.js 如果在Nightwatch中找不到元素,如何重试

Nightwatch.js 如果在Nightwatch中找不到元素,如何重试,nightwatch.js,Nightwatch.js,如果nightwatch没有单击某个元素,我想重试。我该怎么做 我有以下代码: this.browser.isVisible('.signUp', function (result) { if (result.value && result.length) { for(var i = 0; i < 3; i += 1) { this.browser.click(this.ele

如果nightwatch没有单击某个元素,我想重试。我该怎么做

我有以下代码:

 this.browser.isVisible('.signUp', function (result) {
            if (result.value && result.length) {
                for(var i = 0; i < 3; i += 1) {
                    this.browser.click(this.element.login.signInBtn);
                    var check = this.browser.url(function(result) {
                        // on login page
                        console.log(result);
                        if (result.value.indexOf("#login") !== -1) {
                            return false;
                        } else {
                            return true;
                        }
                    });
                    if (check) {
                        break;
                    }
                }
            }
        }.bind(this));
this.browser.isVisible('.signUp',函数(结果){
if(result.value&&result.length){
对于(变量i=0;i<3;i+=1){
this.browser.click(this.element.login.signInBtn);
var check=this.browser.url(函数(结果){
//在登录页面上
控制台日志(结果);
if(result.value.indexOf(“#login”)!=-1){
返回false;
}否则{
返回true;
}
});
如果(检查){
打破
}
}
}
}.约束(这个);

您可以使用命令行选项重试测试用例。示例
nightwatch--retries 2
将再重试失败的测试用例两次

但是,我不建议您使用它。我将首先探索其他选项,以确保可以单击该元素。例如,等待它通过


this.browser.waitForElementVisible(this.element.login.signInBtn,1000)

您可以使用命令行选项重试测试用例。示例
nightwatch--retries 2
将再重试失败的测试用例两次

但是,我不建议您使用它。我将首先探索其他选项,以确保可以单击该元素。例如,等待它通过


this.browser.waitForElementVisible(this.element.login.signInBtn,1000)

-重试n不会在函数前后运行,因此不会按预期工作。你应该试一试

-重试n不会在函数之前和之后运行,因此不会按预期工作。你应该试一试

你能解释一下为什么你需要重试吗?通常情况下,如果您需要重试,则某些内容无法按预期工作,这是应该修复的,而不是测试。您可以解释为什么需要重试某些内容吗?一般来说,如果你需要重试,有些东西没有按预期工作,这是应该修复的,而不是测试。两者之间的区别是什么?两者之间的区别是什么?