33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
# TMWebDriver SOP
|
||
|
||
- 禁止import,直接用web_scan/web_execute_js工具。本文件只记录特性和坑。
|
||
- 底层:`../TMWebDriver.py`通过Tampermonkey脚本接管用户浏览器(保留登录态/Cookie)
|
||
- 非Selenium/Playwright,不需调试浏览器或新数据目录
|
||
- 支撑 `web_scan`(只读DOM) / `web_execute_js`(执行JS) 等高层工具
|
||
|
||
## 限制(isTrusted)
|
||
- JS dispatch的事件`isTrusted=false`,敏感操作(文件上传/部分按钮)会被浏览器拦截
|
||
- 文件上传:JS无法填充`<input type=file>`,必须ljqCtrl物理点击+Win32轮询文件对话框
|
||
- 流程:SetForegroundWindow→ljqCtrl点上传按钮→FindWindow轮询对话框→输入路径→轮询关闭
|
||
- 结论:读信息+普通操作用TMWebDriver;文件上传等敏感操作需配合ljqCtrl
|
||
|
||
## 导航
|
||
- `web_scan` 仅读当前页不导航,切换网站用 `web_execute_js` + `location.href='url'`
|
||
|
||
## Google图搜
|
||
- class名混淆禁硬编码,点击结果用 `[role=button]` div
|
||
- web_scan过滤边栏,弹出后用JS:文本`document.body.innerText`,大图遍历img按`naturalWidth`最大取src
|
||
- "访问"链接:遍历a找`textContent.includes('访问')`的href
|
||
- 缩略图:`img[src^="data:image"]`直接提取;大图src可能截断用`return img.src`
|
||
|
||
## Chrome下载PDF
|
||
场景:PDF链接在浏览器内预览而非下载
|
||
```js
|
||
fetch('PDF_URL').then(r=>r.blob()).then(b=>{
|
||
const a=document.createElement('a');
|
||
a.href=URL.createObjectURL(b);
|
||
a.download='filename.pdf';
|
||
a.click();
|
||
});
|
||
```
|
||
注意:需同源或CORS允许,跨域先导航到目标域再执行 |