新版按键浏览器控件大揭秘
本文由按键学院提供技术支持
按键学院交流群(1群已满):376122403 零基础学按键精灵群(2群):372671254 按键学院交流③群(3群):170084238
duang~duang~duang~按键精灵2014.03测试版之前抢先在会员专区发布了!本版本除了修复一些bug外,外加新增俩大亮点功能,一是新增表格控件,二是新增浏览器控件,小编之前在发布前也忍不住尝鲜,尝试用浏览器控件写了个按键论坛自动签到的小例子脚本,这期院刊就以这个脚本为例子带大家了解下新增浏览器控件的一些常用隐藏属性的使用和控件事件 |
还没下载体验的童鞋还不快去这边下载体验,下载地址
按键2014.03版新增表格控件与浏览器控件(附带例子与源码~),速来下载! 这个浏览器控件是基于web网页插件里的命令设计出来的,它和wqm的内核版本是一样的,所以它的 很多命令都与web网页插件的命令基本上是差不多的,使用过程中如果有发现bug或者其他不懂的问题欢迎跟帖反馈哈~
那我们接下来就讲讲自动登录论坛这个例子,首先我们论坛自动签到例子拉的界面控件如下图
- 您所在的用户组无法下载或查看附件
[tr=rgb(154, 205, 50)]窗体1加载事件 | - Event Form1.Load //窗体1加载事件
- Form1.WebBrowser1.Url = "http://bbs.anjian.com/forum.php" //页面跳转到按键论坛页面
- Form1.InputBox1.Text = "http://bbs.anjian.com/forum.php"
- Form1.Button2.Caption = "后退"
- Form1.Button3.Caption = "前进"
- Form1.Button1.Caption = "跳转页面"
- Form1.Button4.Caption = "【按键论坛一键签到】
- End Event
复制代码 窗体1事件加载后就变成了如下界面,是不是一下子美观多了,有没有点像独立的ie界面
- 您所在的用户组无法下载或查看附件
这里涉及到了浏览器控件的第一个常用属性就是跳转到指定网址的页面,相当于我们web网页插件里的go命令,代码示例如下- Form1.WebBrowser1.Url = "这里写要跳转显示的页面地址"
复制代码 那有些童鞋可能就会问我们能不能像浏览器那样输入自定义网址后跳转显示呢,答案是可以的,我们在跳转页面按钮上弄个点击事件就可以了,让浏览器控件跳转的页面地址为输入框1的内容- Event Form1.Button1.Click //页面跳转按钮点击事件
- Form1.WebBrowser1.Url = Form1.InputBox1.Text//跳转到输入框1里输入的网址
- End Event
复制代码[tr=rgb(154, 205, 50)]浏览器控件页面加载完成事件
| 该浏览器控件目前只有一个加载页面完成事件,示例如下- Event Form1.WebBrowser1.DocumentComplete //页面加载完成事件
- Form1.Label1.Caption = " " & Form1.WebBrowser1.GetTitle// GetTitle属性— 获取当前显示的页面标题
- MsgBox "页面加载完成,成功获取页面的标题"
- End Event
复制代码 之前发现不少童鞋都在咨询如何判断网页是否加载完成然后执行代码,用这个事件应该就能比较好的解决了
[tr=rgb(154, 205, 50)]获取浏览器控件所显示的页面句柄
| 获取页面句柄代码示例- 页面句柄 = Form1.WebBrowser1.GetIEHwnd// GetIEHwnd属性—获取显示网页内容的句柄
- End Event
复制代码 获取这个页面句柄后有什么用呢?我们举个例子,比如我们想实现自动点击按键论坛上的这个登录按钮
- 您所在的用户组无法下载或查看附件
通常有俩种方法
方法1、通过元素特征字符串去点击(如果元素特征能通过wqm分析到,这种方法更稳定、有效),示例代码如下- Form1.WebBrowser1.HtmlClickEx "tag:EM&txt:登录"// HtmlClickEx属性—点击页面元素特征码
复制代码 HtmlclickEx:这个命令是浏览器控件里的Htmlclick点击页面元素的增强版,小编发现wqm上能实现正常点击的特征码,用Htmlclick经常会出现特征码正确却不点击的情况,所以建议点击的命令都用这个HtmlclickEx增强版
方法2、通过前面说的获取到当前的页面句柄,与按键自带的- 您所在的用户组无法下载或查看附件
里的后台命令配合,进行相应的后台点击或者后台找图找色的操作,这个方法通常用于使用wqm网页分析功能分析不到想点击的页面元素,我们就可以考虑用后台坐标直接点击或者后台找图找色的方法来代替
方法2局限性:它这边的ie页面句柄大小(窗口客户区大小)跟我们所拉浏览器控件的页面大小基本一致,所以不管后台点击还是找图找色都受所拉浏览器控件页面大小的影响,必须在页面没有滚动的情况下有显示在页面里的东西才可以正常进行点击或查找,所以有用到方法2的话一般浏览器控件都必须拉的比较大,而通过元素特征点击的话就不受页面大小影响
[tr=rgb(154, 205, 50)]获取页面网页源文件
| 获取当前显示页面句网页源文件代码示例- 网页源码 = Form1.WebBrowser1.Gethtml// Gethtml属性—获取当前显示页面网页源码
复制代码 注意下这里获取的网页源码是可以通过循环不停获取的,也就是说根据你当前的页面显示实时变动的,并不是固定的,比如你一开始进入的是按键论坛的首页,这个时候获取的就是按键论坛首页的源码,然后再点击进入院刊版块,这个时候获取到的就是院刊版块的网页源码 这个网页源码又有什么作用呢?小编认为大致有3个作用
作用1、使用网页wqm分析不到的元素,可以在网页源码里再查看下,可能会有意外的发现,比如我们按键论坛打卡签到的这个图标
- 您所在的用户组无法下载或查看附件
我们使用wqm网页分析功能去分析的话,是分析不到任何元素特征码的,但是通过审查元素在源码里查看的话,它所对应的源码
- 您所在的用户组无法下载或查看附件
注意图中红色部分,显示出了它的元素 id:pper_a,然后我们再把这个填到wqm元素特征字符串里测试一下,果然就定位到了 - 您所在的用户组无法下载或查看附件
作用2、与instr函数搭配,通过源码进行状态判断,比如我们按键论坛加载页面后如何判断账号是否是已经登陆状态或者是否这个账号已经签到过了
- If Instr(Form1.WebBrowser1.Gethtml, "自动登录") = 0 Then
- Form1.WebBrowser1.HtmlClickEx "id:pper_a" '点击签到按钮
- Call 提示对话框("您的账号已自动签到,请更换其他账号登录")
- Else
- Call 提示对话框("您的账号未登录,请在弹出的登录窗口中手动登录")
复制代码 上面这段代码就是进入按键论坛后,先判断下源码里有没有“自动登陆”这个字符串,获取当前是否是登陆的状态,因为正常登陆后自动登陆这个选项就会消失的
PS:这个浏览器控件也有判断页面元素是否存在(HtmlExists) 这个属性,但这个属性目前有bug,获取不到正确的相应元素特征数量,等修复后估计就可以用这个属性来判断状态了,可以简单化了
作用3、通过与正则表达式配合,提取网页源码里一些有用的信息,比如提取登陆的账号名、积分等等
由于涉及到正则稍微有点复杂,想了解的朋友可以参考这篇帖子,自行研究下:
【院刊】-【201505期】正则实战——轻松完成论坛贴吧一键登录签到
今天关于新增浏览器控件的一些常用隐藏属性就介绍到这了,其他属性的话用法都是跟web网页插件里的基本一致的,大家不了解 的话可以去参考web网页插件里的用法,另外要想用好浏览器控件,就得了解wqm网页插件的用法,建议参考以前的院刊
【院刊】-【201410期】"我叫你你敢答应吗?"之如何设置网页元素特征码
【院刊】-【201409期】抓取网页指定内容(资料),获取网页里的图片
院刊目录 showtopic.aspx?topicid=549014&forumpage=1&page=1
谢谢大家阅读,记得给小编送支花花 ! 顺手点个赞
|