代码如下:
var number = 0;
function twentySeconds() {
if (number <= 1) {
loop();
number++;
console.log('Try number: ' + number);
}
};
if (number > 2) {
clearInterval(twentySeconds)
console.log('Closing program!')
driver.quit()
return;
}
setInterval(twentySeconds, 20000);
因此,我正在创建一个 Firefox 实例,然后使用它多次搜索某个网站。尝试多次后,程序应停止(在本例中,在第三次尝试后,程序应停止)。 问题是最后(当第三次检查结束时) driver.quit() 将关闭浏览器并结束代码的执行。相反,它只是卡住,而没有关闭浏览器并结束程序。
问题是由什么引起的?我需要为每次搜索打开一个选项卡吗?
有关代码的完整 View ,请访问https://github.com/PrinceMatthew/bitcoinProjects/blob/master/improved_address_verifier.js
最佳答案
if
正文中的代码语句(twentySeconds
函数之外的语句)永远不会被执行,因为 number
总是0
当评估条件 ( number > 2
) 时。您应该将该 if 语句移至 twentySeconds
内功能。
除此之外,clearInterval(twentySeconds)
不起作用,因为 twentySeconds
是一个函数,第一个参数为 clearInterval
应该是间隔的 ID( setInterval(..)
返回的值)。
试试这个:
var number = 0;
var intervalId = setInterval(twentySeconds, 20000);
function twentySeconds() {
if (number <= 1) {
loop();
number++;
console.log('Try number: ' + number);
}
if (number > 2) {
clearInterval(intervalId)
console.log('Closing program!')
driver.quit();
}
}
关于javascript - Driver.quit() 不会关闭浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59913120/