javascript - 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
总是在评估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();
}
}
推荐阅读
- postgresql - 从 Neomodel Django 连接到 AWS PostgreSQL
- ruby-on-rails - Stripe 结帐后设置电子邮件的语言
- java - 在Java中提取正则表达式内部值
- postgresql - 删除函数将删除的记录存储为 json
- tensorflow - ValueError: 层 cu_dnnlstm 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,175]
- django - 这是使用 django rest 框架将帖子添加到收藏夹的正确方法吗?
- r - 在 R 中,如何将列名打印成向量形式?
- c - Visual Studio 2019 调试嵌入式目标。如何强制 VS 不将其视为 Windows 可执行文件
- c# - 当我使用依赖注入读取 Azure Function 的应用程序设置时,配置为空
- apache-spark - 从 Spark Dataframe 中的数组中提取单个元素