Selenium与Node.js:无法停止循环执行

时间:2018-12-06 15:32:25

标签: javascript selenium-webdriver promise

我已经用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();

但是没有一个起作用,请帮忙吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

时返回false
    if (readyState === 'complete') {
        return doTest();
    };