gpt4 book ai didi

Javascript 在另一个设置为间隔的函数中运行一次函数

转载 作者:行者123 更新时间:2023-11-30 09:11:08 24 4
gpt4 key购买 nike

您好,我在我的 js 中使用 selenium chrome 驱动程序。我每 2 秒检查一次网站的值(value)。这是我的代码。值每 2 秒检查一次。它有两个值(value)。比如在线或离线。我想写入文本文件以获取状态更改。不是每张支票。这是我的代码。它正在工作,但它每两秒钟保存一次文本文件。我想每两秒检查一次,但我想将其保存在仅文本状态更改中。请帮助我。

setInterval(MyControl, 2000);

function MyControl() {
var x = browser.findElements(By.className("textclass")).then(function(divs) {
// console.log("yy:",divs.length);
var d = new Date();
if (divs.length == 1) {
divs.forEach(function(element) {
element.getAttribute("title").then(function(text) {
console.log(text, " Control Time :", d.toLocaleString());
// playSound();

fs.appendFile('mytextfile.txt', text + " Control Time: " + d.toLocaleString() + '\n', function(err) {
// console.log("/////////////////////////////////////");
if (err) throw err;
});
});
});
} else {
console.log("There isnt any info :" + "Control Time :" + d.toLocaleString());

}
});
}

最佳答案

简单地根据当前值是否与先前值不同来写入文件。

setInterval(MyControl, 2000);

let previousText = null;

function MyControl() {
var x = browser.findElements(By.className("textclass")).then(function (divs) {
// console.log("yy:",divs.length);
var d = new Date();
if (divs.length == 1) {
divs.forEach(function (element) {
element.getAttribute("title").then(function (text) {
console.log(text, " Control Time :", d.toLocaleString());
// playSound();
if (text != previousText)
fs.appendFile('mytextfile.txt', text + " Control Time: " + d.toLocaleString() + '\n', function (err) {
// console.log("/////////////////////////////////////");
if (err) throw err;
});
previousText = text;
});
});
} else {
console.log("There isnt any info :" + "Control Time :" + d.toLocaleString());

}
});
}

另请注意,上面以适当的 JS 样式重写的内容更具可读性:

setInterval(MyControl, 2000);

let previousText = null;

function MyControl() {
browser.findElements(By.className('textclass')).then(divs => {
if (divs.length !== 1)
return;
let date = new Date();
div[0].getAttribute('title').then(text => {
if (text !== previousText)
fs.appendFile('mytextfile.txt', `${text} Control Time: ${date.toLocaleString()}\n`, err => {
if (err) throw err;
});
previousText = text;
});
});
}

关于Javascript 在另一个设置为间隔的函数中运行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58862966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com