代码之家  ›  专栏  ›  技术社区  ›  Alessandro

selenium with node.js:无法停止循环执行

  •  0
  • Alessandro  · 技术社区  · 5 年前

    我已经用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 回复  |  直到 5 年前
        1
  •  1
  •   Vladimir Efimov    5 年前

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

    我建议要么加一个 console.log 之后 doTest-() 以确保dotest()成功完成

    或者,如果一切正常,则使dotest()返回true;如果有异常,则返回false,并将其设置为

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