Driver.quit()无法关闭浏览器

时间:2020-01-25 20:28:08

标签: javascript selenium-webdriver firefox webdriver

这是代码:

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

2 个答案:

答案 0 :(得分:0)

if语句正文中的代码(在twentySeconds函数外部的代码)将永远不会执行,因为在以下情况下,number始终为0: {1}})被评估。您应该将该if语句移至number > 2函数中。

除此之外,twentySeconds不起作用,因为clearInterval(twentySeconds)是一个函数,并且twentySeconds的第一个参数应该是区间的ID(clearInterval返回的值)

尝试一下:

setInterval(..)

答案 1 :(得分:0)

按照Titus的指示,我只需要用if替换第二个else即可。

结果:

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
    }
}
相关问题