diff --git a/.gitignore b/.gitignore index 9be5089..f8f06be 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,10 @@ memory/* # mem_scanner related tools !memory/mem_scanner.py !memory/mem_scanner_sop.md + +# TMWebDriver SOP +!memory/tmwebdriver_sop.md + # Visual Studio .vs/ restore_commit.txt diff --git a/memory/tmwebdriver_sop.md b/memory/tmwebdriver_sop.md new file mode 100644 index 0000000..a040481 --- /dev/null +++ b/memory/tmwebdriver_sop.md @@ -0,0 +1,29 @@ +```markdown +# TMWebDriver 极简说明(L3) + +- 位置:`../TMWebDriver.py` +- 角色:本项目的 **Web 桥接层**,支撑 `web_scan` / `web_execute_js` 等高层工具。 + +## 和 WebDriver / Playwright 的关键差异 + +- 它**不是** Selenium WebDriver 或 Playwright。 +- 主要优势: + - 不需要单独开“调试浏览器”或新用户数据目录。 + - 可以**直接接管你当前已经在用的浏览器**(含现成登录状态、Cookie 等),由 Tampermonkey 脚本转发命令和结果。 +- 典型适用场景: + - 在用户日常使用的浏览器里做轻量自动化:读 DOM、执行简单 JS、在当前页面上点按/滚动等。 + +## 关键限制(未来可能踩坑的点) + +- 受浏览器 **InTrusted / 权限策略** 限制,有些操作不能单靠 TMWebDriver 完成: + 1. **打开新窗口 / 新标签** + - 部分浏览器/脚本设置中,需要用户显式允许脚本“打开新标签/窗口”;否则相关命令会被拦截。 + 2. **上传文件等受信任交互** + - 通常无法单纯用 JS 填充 `` 等敏感控件。 + - 需要配合键鼠控制工具(`ljqCtrl.py` / 控制 SOP)在前台模拟真实点击和文件选择。 + - **文件上传操作要点**:①点击前用 `SetForegroundWindow` 确保浏览器窗口最前;②用 ljqCtrl 物理点击上传按钮(禁止JS click);③用 Win32 `FindWindow` 轮询检测文件对话框是否弹出,确认后再输入路径;④操作后同样轮询检测对话框是否关闭,再继续后续步骤。 + +- 结论: + - TMWebDriver 适合“读信息 + 普通页面操作”; + - 对“新窗口授权、文件上传”这类敏感操作,应默认联想到:**需要和 Ctrl 工具协同**,而不是强行在 JS 里搞定。 +``` \ No newline at end of file