Driver.quit() 不会关闭浏览器



这是代码:

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(( 应该关闭浏览器并结束代码的执行。相反,它只是冻结,而不会关闭浏览器并结束程序。

问题是由什么引起的?我是否需要为每次搜索打开一个选项卡?

有关代码的完整视图,请转到 https://github.com/PrinceMatthew/bitcoinProjects/blob/master/improved_address_verifier.js

if语句(twentySeconds函数外部的代码(正文中的代码永远不会被执行,因为在计算条件(number > 2(时总是0number。您应该将该 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();
}
}

我只需要用else替换第二个if,就是这样,在遵循提图斯给出的指示之后。

结果:

var number = 0;
var intervalId = setInterval(twentySeconds, 20000);
function twentySeconds() {
if (number <= 1) { //(number <= x), where x is the number of times the program should execute - 1
loop();
number++;
console.log('Try number: ' + number);
}
else {
clearInterval(intervalId)
console.log('Closing program!')
driver.quit(); //close browser and quit program
}
}

最新更新