我已经使用Selenium和Node.js编写了一些测试,但是当我运行该测试时,它永远不会结束。

我的代码是:

driver.wait(function () {
    return driver.executeScript('return document.readyState').then(function (readyState) {
        if (readyState === 'complete') {
            doTest();
            // HERE I WANT TO EXIT
        };
    });
});


方法doTest()被无限次调用。

现在您可以在哪里看到“ HERE I WANT TO EXIT”,我尝试通过以下方式停止循环:

return true;
return false;
resolve();
driver.close();
driver.quit();


但是没有一个奏效,请帮忙吗?

最佳答案

目前尚不清楚为什么return true;不起作用。可能的问题是doTest()失败,但有一些异常会通过等待传播。您是否检查过您的代码是否已到达“我要退出的地方”行?

我建议在console.log之后添加doTest()以确保doTest()成功完成

或使doTest()在一切正常的情况下返回true,在有任何异常的情况下返回false,并使其成为

    if (readyState === 'complete') {
        return doTest();
    };

关于javascript - Selenium与Node.js:无法停止循环执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53654706/

10-10 13:43