QT 模拟点击网页
来源:互联网 发布:一淘也叫淘宝客吗 编辑:程序博客网 时间:2024/05/09 09:38
- 概要
- QWebView 的对象生成
- 获取网页标签
- 给输入框赋值
- setAttribute进行赋值
- 直接赋值
- 通过JS 模拟一次点击事件
概要
QT 客户端与网页交互的过程中,总是有很多值得我们学习的地方。 而QT模拟点击网页,也是很重要的内容之一, 这里所说的QT模拟点击网页就是获取到网页上的对应的标签,然后再进行我们想要的点击操作。如点击标签,或者提交登陆。
QWebView 的对象生成。
m_browser = new QWebView(); setCentralWidget(m_browser); //为中心位置 QWebPage* page = m_browser->page(); page->setForwardUnsupportedContent(true);//下面是设置对应网页上的一些可操作属性 QWebSettings* settings = page->settings(); settings->setAttribute(QWebSettings::AutoLoadImages, false); //不让自动下载图片。 settings->setAttribute(QWebSettings::JavascriptEnabled, true); //允许使用js settings->setAttribute(QWebSettings::PluginsEnabled, true); //可以拖拽网页
获取网页标签
QWebFrame* frame = m_browser->page()->mainFrame();QWebElement element = frame->documentElement().findFirst(QLatin1String("div[class=search_btn_wrap]")).firstChild()
我们可以通过QWebView 对象的page() 里获得mainFram() , 而element 的查找就可以通过fram里面的所有element 找到需要的element,这里可以通过id, 也可以通过className,
findFirst(QLatin1String(“div[class=search_btn_wrap]”))
这里是找到网页中class name为 search_btn_wrap 的第一次出现的div标签。 firstChild() 这里是找到该div标签后,再找到它的第一个子标签。
其它的查找方式也类似这样。
给输入框赋值
setAttribute进行赋值
QWebFrame* frame = m_browser->page()->mainFrame(); QWebElement element = frame->documentElement().findFirst(QLatin1String("input[class=pwd]")); element.setAttribute(QLatin1String("value"), m_password);
这里先通过QT的接口获取到对应的element, 再通过QWebElement 的setAttribute 方法设置输入框内需要的值。
直接赋值
QWebFrame* frame = m_browser->page()->mainFrame();
frame->evaluateJavaScript(tr(“document.getElementById(\”passkey\”).value=\”%1\”“).arg(m_password));
这里是通过使用js脚本,先通过标签id找到对应的标签,再进行赋值造作。
通过JS 模拟一次点击事件。
void emulateMouseClick(QWebElement& element){ const QString script = QLatin1String( "var evObj = document.createEvent('MouseEvents');" "evObj.initEvent('click', true, true);" "this.dispatchEvent(evObj);"); element.evaluateJavaScript(script);}
这里是自己先编写需要用上的js脚本,这里的功能是模拟鼠标点击一次, 再通过QWebElement 的evaluateJavaScript 方法来执行JS脚本操作。
- QT 模拟点击网页
- 模拟点击网页按钮
- C++模拟网页点击
- 模拟网页点击事件
- Qt 模拟鼠标点击
- 模拟点击网页中的按钮
- 模拟网页上用户点击
- 模拟点击网页中的按钮
- 模拟点击网页广告源代码
- 网页模拟点击(非鼠标,消息模拟)
- delphi之模拟点击网页中的按钮
- delphi之模拟点击网页中的按钮
- 模拟点击网页广告Delphi源代码
- delphi之模拟点击网页中的按钮
- delphi之模拟点击网页中的按钮
- 模拟点击网页广告Delphi源代码
- 模拟网页点击,抢票,刷论坛可用
- delphi之模拟点击网页中的按钮
- 中间件
- Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)
- 217. Contains Duplicate
- [BZOJ4034][HAOI2015]T2 做题笔记
- 事件处理
- QT 模拟点击网页
- Maven的环境搭建
- facebook的图片加载控件SimpleDraweeView的属性
- c# Invoke和BeginInvoke 区别
- Linux下的定时任务crontab设置
- Sublime 使用小技巧
- Python 基础——sorted
- Basic Concepts of Elasticsearch Elasticsearch基本概念
- SpringMVC 过滤json对象