抖音直播间模拟用户输入操作-自动发评论插件

简介: 本插件通过延迟等待和模拟用户输入功能,实现网页自动化操作。使用 JavaScript 的 Promise 和 setTimeout 实现延迟,并结合 Chrome 扩展的调试器 API 注入代码,精准控制页面元素,触发真实用户交互事件,适用于自动化测试与表单填写等场景。

插件中延迟等待功能的实现

function delay(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
(async () => {
    while(true) {
        console.log("Start");
        await delay(5000);
        console.log("End"); // 5秒后应该输出
        await delay(5000);
    }
})();

网页中模拟用户输入操作

我们唯一客服浏览器插件实现了自动化发评论

content.js

function delay(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
(async function() {
    while(true) {
        var arr = ["你好", "加油"];
        for (let value of arr) {
            console.log(value);
            chrome.runtime.sendMessage({
                action: "simulateInput",
                xpath: '//div[@contenteditable="true"]',
                input: value
            });
            await delay(10000);
        }
    }
})();

background.js

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        // 处理模拟输入事件
        if (request.action === "simulateInput") {
            let xpath=request.xpath;
            executeSimulateEditableInput(sender.tab.id,xpath,request.input)
        }
});
// 发送 POST 请求
function executeSimulateEditableInput(tabId, xpath, input) {
    const code = `
      function simulateEditableInput(xpath, input) {
        const result = document.evaluate(
          xpath,
          document,
          null,
          XPathResult.FIRST_ORDERED_NODE_TYPE,
          null
        );
        const element = result.singleNodeValue;
  
        if (element) {
          // 确保元素可编辑
          element.focus();
          element.value = input;
          element.innerHTML = input;
          
          // 触发完整事件链
          ['focus', 'input', 'change'].forEach(eventType => {
            element.dispatchEvent(new Event(eventType, {
              bubbles: true,
              cancelable: true
            }));
          });
        }
      }
      simulateEditableInput(${JSON.stringify(xpath)}, ${JSON.stringify(input)});
    `;
  
    chrome.debugger.attach({ tabId }, '1.3', () => {
      chrome.debugger.sendCommand({ tabId }, 'Runtime.evaluate', {
        expression: code,
        awaitPromise: true
      }, (result) => {
        console.log('Execution result:', result);
        chrome.debugger.detach({ tabId });
      });
    });
  }

具体原理

  1. 消息监听部分:
  1. 监听扩展内部发送的消息
  2. 当收到 action: "simulateInput" 的消息时,提取 XPath 选择器和输入内容
  3. 调用 executeSimulateEditableInput 函数执行实际模拟
  1. 调试器注入部分:
  1. 使用 chrome.debugger.attach 附加到目标标签页
  2. 通过 Debugger Protocol 的 Runtime.evaluate 命令注入代码
  3. 执行完成后断开调试器连接
  1. 核心模拟逻辑(在目标页面中执行的代码):
  1. 使用 document.evaluate 通过 XPath 查找目标元素
  2. 对找到的元素执行以下操作:
  • focus():模拟获取焦点
  • 设置 value 和 innerHTML 属性
  • 依次触发三个关键事件:
  • focus 事件 - 模拟元素获得焦点
  • input 事件 - 模拟用户输入
  • change 事件 - 模拟内容变更确认
  1. 事件触发机制:
  1. 使用 dispatchEvent 创建并派发合成事件
  2. 设置 bubbles: true 让事件冒泡
  3. 设置 cancelable: true 允许事件被取消

为什么使用 Debugger API

  • 普通内容脚本可能无法完全模拟所有输入场景
  • Debugger API 提供了更底层的页面控制能力
  • 可以确保事件触发的完整性和真实性

注意事项

  1. 需要扩展拥有 debugger 权限
  2. 这种方式会短暂中断页面上的所有调试会话
  3. 相比直接内容脚本注入,这种方式能更好地模拟真实用户交互

这种实现方式特别适合需要高度模拟真实用户输入的场景,比如自动化测试或表单填写扩展。

目录
相关文章
|
Web App开发 搜索推荐 Android开发
AppsFlyer 研究(三)OneLink平台归因、跳转、深度链接
AppsFlyer 研究(三)OneLink平台归因、跳转、深度链接
3243 0
Autojs4.1.0实战教程---抖音极速版自动评论
Autojs4.1.0实战教程---抖音极速版自动评论
937 1
|
存储 缓存 开发工具
AppsFlyer 研究(五)延迟深度链接&客户端获取归因数据
AppsFlyer 研究(五)延迟深度链接&客户端获取归因数据
2265 0
|
2月前
|
人工智能 API 数据安全/隐私保护
聚美智数 × 阿里云百炼One Key MCP:一个 API Key,连接海量 Agent 生态
阿里云百炼上线One Key MCP服务,仅需一个API Key即可统一调用全部MCP能力,兼容Codex、Claude Code等主流Coding Agent平台。聚美智数首批接入,首发车辆VIN、快递、物流轨迹查询服务,毫秒响应、合规权威,助力Agent快速集成真实业务能力。
335 0
聚美智数 × 阿里云百炼One Key MCP:一个 API Key,连接海量 Agent 生态
|
4月前
|
Web App开发 人工智能 自然语言处理
我解放啦,网页终于能自己干活了!阿里 2 万 Star 开源 Page Agent,20 次点击变一句话
Page Agent 是阿里开源的页面内 GUI Agent:不用 Python、无头浏览器或强制浏览器插件,前端接入 JavaScript 后,就能让用户用自然语言操作网页。
1407 4
我解放啦,网页终于能自己干活了!阿里 2 万 Star 开源 Page Agent,20 次点击变一句话
抖音评论脚本,全自动评论留言插件,autojs工具开发
自动评论系统包含主脚本、配置文件和说明文档。主脚本实现了完整的自动浏览和评论功能,
抖音快手直播间打字脚本,直播间发言循环弹幕插件,自动打广告发送文字信息源码
这是一款用于快手直播间的自动化营销工具源码,可实现直播间自动发送非重复随机广告信息、虚拟欢迎语、持续点赞等功能。
|
Java 测试技术
抖音点赞脚本,直播间作品批量点赞,jar插件代码分享
实现使用了Selenium WebDriver自动化测试框架来模拟浏览器操作。代码包含登录功能
|
机器人 数据安全/隐私保护
直播间自动发言机器人插件,抖音快手小红书微博哔哩哔哩,刷屏打字脚本发消息
这些代码展示了直播间自动化发言的基本框架,但实际使用时需要注意:1) 各平台反爬机制不同
抖音评论插件,全自动评论脚本留言,点赞关注私信autojs
脚本提供了完整的抖音自动化操作功能,包括随机滑动视频、点赞、关注、评论和私信。代码中包

热门文章

最新文章