栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

QtWebEngine automation 自动化操作

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

QtWebEngine automation 自动化操作

早期版本的 QtWebkit  github 上有 Cisco 的 automation 开源项目(https://github.com/cisco-open-source/qtwebdriver)。Qt 后来采用的 QtWebEngine 我搜了很多英文网页也没有成熟框架。只有通过其他方法曲线解决了。

1、记住鼠标点位(电脑屏幕取点工具),用 pyautogui 去点击。

2、分析网络协议。使用工具 ecapture,可以方便地分析 https 的流量 ,只能在 linux 下运行。

3、在加载的页面里,打开调试窗口,输入JavaScript 代码。

4、图像识别,paddleOCR 识别文字效果很好,再结合 opencv 检测文本框。

鉴于第 3 点靠谱一点,贴一部分代码吧:

// 断点调试
debugger;
document.getElementById("demo").innerHTML = x;

// 模拟浏览器的鼠标点击事件

  
 // 判断元素存在 
 if(document.theForm.periodPerMonth) 
{ //存在 }

// 等待几秒
setTimeout(() => console.log(1), 1000)
setTimeout(() => console.log(2), 1000)
setTimeout(() => console.log(3), 1000) 
for (let i = 0; i <= 3; i++) {
  setTimeout(() => console.log(`#${i}`), 1000)
}

const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay)) 
const repeatedGreetings = async () => {
  await sleep(1000)
  console.log(1)
  await sleep(1000)
  console.log(2)
  await sleep(1000)
  console.log(3)
}
repeatedGreetings()

// 模拟右键
var obj= document.getElementById('userid');
obj.oncontextmenu= function(event){ alert('测试而已!')}
 var obj = document.getElementById('userid');
 var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('contextmenu',true,true,window,1,12,345,7,220,false,false,false,false,0,null);
 obj.dispatchEvent(evObj);
 
 
// 模拟双击
var targLink    = document.getElementById ("something");
var clickEvent  = document.createEvent ('MouseEvents');
clickEvent.initEvent ('dblclick', true, true);
targLink.dispatchEvent (clickEvent);

// 保存文件到本地:FileSaver.js 原理  https://juejin.cn/post/6901790184841412622

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/838473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号