按键精灵2014
按下F9启动网页元素分析,再次按下F9停止4 获取到文本框的 id 是 kw (id是文本框的属性之一), 文本框的特征字符串:'id:kw'代码:Call Plugin.Web.bind('WQM.exe')Call Plugin.Web.go('http://zc.qq.com')Call Plugin.Web.HtmlInput('按键精灵','id:kw')效果:
元素的属性并非只有 id一种,还有name,type等等,上表格了解下~~ 网页元素特征属性
如何组合网页元素特征字符串?网页上的元素作为整个网页的组成部分之一,大部分都具备自己独一无二的特征,只要用特征串描述出该特称,就可以定位到该元素。1 、 每一个网页元素都可以有一个id,这个id在整个网页中都是唯一的,在很多网页的表单中,表单元素都有ID。如果对应的元素有id,那么这个特征串最为简单,直接使用id:theID即可唯一定位到该元素。例子 QQ注册界面的昵称文本输入框 特征串:'id:nick' 图示:
2 、早期的网页中,表单元素没有使用id,而是使用了name属性,这个name一般来说也是唯一的,此时可以使用tag:INPUT&name:theName 来定位元素;例子 QQ注册页面中的昵称文本框,它也具备name属性 (昵称文本框是有id属性的,假设它没有) 特征串:'tag:INPUT&name:nick' 我们测试会发现, 'name:nick'也可以,为什么要在前面添加 tag:INPUT呢? tag它是网页标签的意思,文本输入框的标签是input,超链接的标签是a,为了避免其它标签里有同名的元素,所以加上了tag:INPUT 图示:
3、 有一些比较BT的网页表单既不用id,也不用name的,就只能依靠type与index来定位,例如定位表单中的第二个单行文本框:tag:input&type:text&index:1;定位第三个下拉框:tag:select&index:2;例子 QQ注册界面的出生年月下拉列表框 (假设出生年月元素没有id也没有name) 特征串:'tag:input&type:text&index:7' 如果不看网页分析一下子就被骗了有木有,认为出生年月是下拉列表框,然后用 特征串:tag:select&index:7 结果就是怎么叫它都不应…… 图示:
4 、 点击按钮时,有ID直接使用ID匹配,如果没有ID,也可以通过文字匹配 例子 QQ注册页面中的立即注册按钮 特征串:'tag:input&value:立即注册' 图示:
注意:如果按钮的文字的带有空格,而且空格在两端时,匹配经常失效,此时可以用通配符来匹配:例如google首页上的“手气不错”按钮,它的两端都有一个空格,而且使用的编码的HTML符号 来表示的,直接使用value无法获得准确的匹配,此时就需要使用通配符:tag:input&value*:手气不错
5、 有点击链接时,大部分情况下都需要使用txt属性,因为链接没有其他属性可以用来匹配例子 QQ注册界面的'English'超链接 我们使用WQM网页分析得到元素特征串:'tag:A&txt:English' 没有任何反应……这里需要注意下,不是所有的超链接都支持txt属性特征串的,如果不支持txt属性的,我们就使用索引,特征串:'tag:A&index:7' 图示:
6 、Frame页面元素,有些网页中会采用Frame或者Iframe,在这些Frame子页面中,不能直接控制,需要指定frame才能进行控制,这里采用frame的索引来进行定位。可以使用网页分析器来查看具体的frame页面的index。然后再在特征字符串上加上frame,格式:frame:0&tag:a&txt:超链接。QQ注册页面填表示例代码:Call Plugin.Web.bind('WQM.exe')Call Plugin.Web.go('http://zc.qq.com')Call Plugin.Web.Htmlinput('按键学院','name:nick') //昵称Call Plugin.Web.HtmlInput(123456,'id:password')//密码Call Plugin.Web.HtmlInput(123456,'id:password_again')//确认密码Call Plugin.Web.HtmlClick('id:sex_2') //性别Call Plugin.Web.HtmlSelect('2014年','tag:input&type:text&index:7')//出生 年Call Plugin.Web.HtmlSelect('8月','tag:input&type:text&index:8')//出生 月Call Plugin.Web.HtmlSelect('7日','tag:input&type:text&index:9')//出生 日Call Plugin.Web.HtmlInput('ajxy','id:code')//验证码Call Plugin.Web.HtmlClick('tag:input&value:立即注册')//立即注册注意:小编在测试QQ注册填表时,发现Tx好奸诈,出生年月日填入之后,会自动给value值加上一个逗号。如果出现这样的情况,可以模拟手动操作,鼠标移动到下拉列表之后下拉进行选择。
特殊情况处理1、 在某些网页中,可能会使用一些特殊的标记例如: 这个类型的input,只能使用index来定位, 特征串:tag:input&type:image&index:02、 有的表单中使用了 这样的按钮来提交表单,特征串: tag:Button&txt:提交