我已经使用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/