精易论坛

标题: JS代码,实现批量隐藏抖音个人作品 [打印本页]

作者: 果心豆腐酱    时间: 2023-11-30 13:16
标题: JS代码,实现批量隐藏抖音个人作品
  
async function setPermissions (opBtnsText, radioText) {
// 获取所有包含.op-btns--DxbEz类的元素
const opBtnsElements = document.querySelectorAll ( ' .op-btns--DxbEz');
// 循环处理每个op-btns--DxbEz元素
for (const opBtnsElement of opBtnsElements) {
// 在当前op-btns--DxbEz元素中查找所有匹配的子元素
const spanElements = opBtnsElement.querySelectorAll ( ' .ghost-btn--10MXQ.op-btn--lDoCH span');
// 循环处理每个匹配的span元素
for (let i = 0; i < spanElements.length; i++) {
const spanElement = spanElements[i];
// 如果找到了内容为opBtnsText的span元素,就执行点击操作
if (spanElement.textContent.trim () === opBtnsText) {
spanElement.click (); // 点击span元素
await new Promise (resolve => setTimeout (resolve, 500)); // 等待500毫秒
// 查找.radio--4Gpx6元素并循环10次检查
const radioElements = document.querySelectorAll ( ' .radio--4Gpx6');
let foundVisible = false;
for (let j = 0; j < 10; j++) {
for (let k = 0; k < radioElements.length; k++) {
const radioElement = radioElements[k];
// 判断.radio--4Gpx6元素的文本内容是否为radioText
if (radioElement.textContent.trim () === radioText) {
radioElement.click (); // 点击.radio--4Gpx6元素
foundVisible = true;
break;
}
}
if (foundVisible) {
break;
}
await new Promise (resolve => setTimeout (resolve, 500)); // 等待500毫秒再次检查
}
// 点击保存设置的按钮
const saveButton = document.querySelector ( ' .button--1SZwR.primary--1AMXd.dialog--2ZZzf');
saveButton.click ();
console.log ("开始等待");
await new Promise (resolve => setTimeout (resolve, 3000)); // 等待3秒钟
console.log ("等待结束");
// 继续处理下一个opBtnsElement的判断
continue;
}
}
}
}
// 调用函数并传递参数
setPermissions ("设置权限", "仅自己可见");


我懒得截图了,亲测有效,支持使用开发者工具的浏览器,都能用。(一个无聊用不到的功能。)



作者: qck易语言    时间: 2023-11-30 16:21
看起来像ai的风格
作者: lm88818    时间: 2023-11-30 16:24
        感谢分享,很给力!~
作者: 寻一    时间: 2023-11-30 16:27
感谢分享
作者: bianyuan456    时间: 2023-11-30 18:19
已经顶贴,感谢您对论坛的支持!
作者: 447485268    时间: 2023-11-30 20:32
已经顶贴,感谢您对论坛的支持!
作者: 曦月    时间: 2023-11-30 20:47
论坛有你更精彩
作者: ZHuanR    时间: 2023-11-30 20:49
新技能已get√
作者: 夏亿    时间: 2023-11-30 21:15
新技能已get√
作者: zaozi    时间: 2023-12-1 06:44
支持开源~!感谢分享
作者: 一指温柔    时间: 2023-12-1 09:10
感谢分享
作者: 396384183    时间: 2023-12-1 23:16

感谢分享
作者: pipicool    时间: 2023-12-4 06:52
学习一下
作者: 风景好靓    时间: 2023-12-4 21:53
感谢分享,很给力!~
作者: Tunny    时间: 2023-12-16 21:29
是我哪里出问题了嘛,为什么我的无效
作者: Tunny    时间: 2023-12-16 21:37


作者: 果心豆腐酱    时间: 2023-12-16 23:58
Tunny 发表于 2023-12-16 21:29
是我哪里出问题了嘛,为什么我的无效

[]   不是<>
作者: 果心豆腐酱    时间: 2023-12-16 23:58
Tunny 发表于 2023-12-16 21:37

自己对照一下源码,就能看出来了啊,你复制的内容和源码都不一样
作者: 845666210    时间: 2024-1-11 01:13
async function setPermissions(opBtnsText, radioText) {
  const opBtnsElements = document.querySelectorAll('.op-btns--DxbEz');

  for (const opBtnsElement of opBtnsElements) {
    const spanElements = opBtnsElement.querySelectorAll('.ghost-btn--10MXQ.op-btn--lDoCH span');

    for (let i = 0; i < spanElements.length; i++) {
      const spanElement = spanElements[i];

      if (spanElement.textContent.trim() === opBtnsText) {
        spanElement.click();

        await new Promise(resolve => setTimeout(resolve, 500));

        const radioElements = document.querySelectorAll('.radio--4Gpx6');
        let foundVisible = false;

        for (let j = 0; j < 10; j++) {
          for (let k = 0; k < radioElements.length; k++) {
            const radioElement = radioElements[k];

            if (radioElement.textContent.trim() === radioText) {
              radioElement.click();
              foundVisible = true;
              break;
            }
          }

          if (foundVisible) {
            break;
          }

          await new Promise(resolve => setTimeout(resolve, 500));
        }

        const saveButton = document.querySelector('.button--1SZwR.primary--1AMXd.dialog--2ZZzf');
        saveButton.click();

        console.log("开始等待");
        await new Promise(resolve => setTimeout(resolve, 3000));
        console.log("等待结束");

        continue;
      }
    }
  }
}

setPermissions("设置权限", "仅自己可见");

作者: Tunny    时间: 2024-8-29 17:44
[JavaScript] 纯文本查看 复制代码
async function setPermissions(opBtnsText) 
{
    // 获取所有包含.video-card-zQ02ng 类的元素
    const opBtnsElements = document.querySelectorAll('.video-card-zQ02ng');

    // 循环处理每个video-card-zQ02ng 元素
    for (const opBtnsElement of opBtnsElements) {
        // 在当前video-card-zQ02ng 元素中查找所有匹配的子元素
        const spanElements = opBtnsElement.querySelectorAll('.video-card-info-aglKIQ span');

        // 循环处理每个匹配的span元素
        for (let i = 0; i < spanElements.length; i++) {
            const spanElement = spanElements;

            // 如果找到了内容为 opBtnsText 的span元素,就执行点击操作
            if (spanElement.textContent.trim() === opBtnsText) {
                spanElement.click(); // 点击span元素

                await new Promise(resolve => setTimeout(resolve, 500)); // 等待500毫秒

                // 点击确定删除的按钮
                const deleteButton = document.querySelector('.button-dhlUZE.modal-btn-GK4fsX.primary-cECiOJ');
                deleteButton.click();
                console.log("开始等待");
                await new Promise(resolve => setTimeout(resolve, 3000)); // 等待3秒钟
                console.log("等待结束");
                               
                                // 继续处理下一个opBtnsElement的判断
                continue;              
            }
        }
    }
}

// 调用函数并传递参数
setPermissions("删除作品");



我是个小白,我改成删除作品,却只能删除一个,无法循环,可以帮忙看看哪里错了吗?




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4