console.log() 未在间隔内记录到控制台
console.log() not logging to console inside interval
我翻阅了无数次 post,但似乎无法找到我的问题的答案。
我的间隔中有一个 console.log 表达式。当控制台中的代码为 运行 时,它会完美执行,但拒绝 console.log 我的字符串通知客户端用户脚本正在运行。
这是我的代码和注释:
- 初始化点赞数为0
- 设置间隔和秒数(以毫秒为单位)
- 定义点赞按钮
- 定义下一张图片按钮
- 如果有likeButton,点击likeButton
- 点赞加 1 并记录控制台字符串
- 单击箭头转到新照片
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 上看过的一些 post 的 inspect source
来看,点赞按钮似乎有两种状态。
<svg aria-label="Like" />
当 post 还没有被点赞时。
<svg aria-label="Unlike" />
当 post 已经被你点赞了。
问题是 const likeButton = document.querySelector('svg[aria-label="Like"]');
将整个元素作为对象返回,而不是 true/false 值,因此 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);
我翻阅了无数次 post,但似乎无法找到我的问题的答案。
我的间隔中有一个 console.log 表达式。当控制台中的代码为 运行 时,它会完美执行,但拒绝 console.log 我的字符串通知客户端用户脚本正在运行。
这是我的代码和注释:
- 初始化点赞数为0
- 设置间隔和秒数(以毫秒为单位)
- 定义点赞按钮
- 定义下一张图片按钮
- 如果有likeButton,点击likeButton
- 点赞加 1 并记录控制台字符串
- 单击箭头转到新照片
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 上看过的一些 post 的 inspect source
来看,点赞按钮似乎有两种状态。
<svg aria-label="Like" />
当 post 还没有被点赞时。<svg aria-label="Unlike" />
当 post 已经被你点赞了。
问题是 const likeButton = document.querySelector('svg[aria-label="Like"]');
将整个元素作为对象返回,而不是 true/false 值,因此 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);