[英]console.log() not logging to console inside interval
我浏览了很多帖子,似乎找不到我的问题的答案。
我的间隔中有一个 console.log 表达式。 当代码在控制台中运行时,它完美地执行,但拒绝控制台记录我的字符串,通知客户端用户脚本正在运行。
这是我的带注释的代码:
let likes = 0;
setInterval(() => {
const likeButton = document.querySelector('svg[aria-label="Like"]');
const nextButton = document.querySelector('svg[aria-label="Next"]');
if (likeButton) {
likeButton.parentNode.parentElement.click()
likes++;
console.log(`You've liked ${likes} post(s)`);
}
nextButton.parentElement.parentNode.click();
}, 20000);
从我在 Instagram 上看过的几篇帖子的inspect source
来看,点赞按钮似乎有两种状态。
<svg aria-label="Like" />
当帖子还没有被点赞时。<svg aria-label="Unlike" />
当帖子已被您点赞时。 问题是const likeButton = document.querySelector('svg[aria-label="Like"]');
将整个元素作为对象返回,并且不是真/假值,因此if (likeButton) {
永远不会为真,但正如@Unmitigated 指出的那样,它可能是“真实的”。 要确定按钮是否已被单击并消除任何“真正的摆动空间”,您需要查看likeButton
元素上的属性。 为此,您可以使用 getAttribute()。
let likes = 0;
setInterval(() => {
const likeButton = document.querySelector('svg[aria-label="Like"]');
const nextButton = document.querySelector('svg[aria-label="Next"]');
if (likeButton.getAttribute("aria-label") === "Like")) {
likeButton.parentNode.parentElement.click();
likes++;
console.log(`You've liked ${likes} post(s)`);
}
nextButton.parentElement.parentNode.click();
}, 20000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.