- 初中三年级
- 2220985
- 396
- 0
- 532 朵
- 2506 个
- 334 个
- 480
- 2013-10-27
|
1#
t
T
发表于 2014-10-22 15:50
|
|只看楼主
"我叫你你敢答应吗?"之 如何设置网页元素特征码 叫它它不答应?想点击某个网页上的按钮,特征字符串分明是对的,为什么就是没有反应?各种离奇事件,让我们一起走进 解密档案之网页元素特征字符串~ |
| 网页元素特征字符串是个啥?网页元素特征字符串是一个用来描述网页元素标签特征的字符串,用于定位指定元素 特征串格式: 属性1:值1&属性2:值2&属性3:值3&属性4:值4 特征串由“&”链接,使用“:”分隔属性名称与属性值;连接成一个完全的特征字符串;
不同的网页元素具备不同的属性。例如百度网页里的,百度一下按钮的html代码:
<input type=submit value="百度一下" id=su class="btn self-btn bg s_btn"> 百度一下按钮具备的属性:type、value、id,这些属性的值分辨是:submit、"百度一下"、su
|
怎样实现网页上的元素操控举个例子:咱们现在需要在百度搜索文本框里输入:按键精灵 | 步骤1 打开WQM网页小精灵。 Call Plugin.Web.bind("WQM.exe") 2 设置要打开的网页地址。Call Plugin.Web.go("http://www.baidu.com") 3 使用 HtmlInput 命令 往文本框中输入文字。 HtmlInput 命令
命令名称: | HtmlInput 往文本框中输入文字
| 命令功能: | 向网页中指定特征的文本框输入内容
| 命令参数: | 参数1:字符串型,文本内容参数 2:字符串型,网页元素特征字符串
| 返 回 值: | 无
|
HtmlInput命令 的第一个参数是需要输入的文本内容,设置为"按键精灵" ,第二个参数是元素的特征字符串。 要怎样获取文本框的特征字符串呢? 方法:打开WQM网页小精灵,打开到百度页面,然后点击WQM上的网页分析,就会出现网页元素的分析界面:
- 您所在的用户组无法下载或查看附件
按下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 | 所有元素 | 2 | index | 所有元素, 一般在指定特征时无法唯一定位元素时使用,从0开始计算 | 3 | name | 具备name属性的表单元素 | 4 | type | 具备type属性的表单元素 | 5 | value | 具备value属性的表单元素,一般用来匹配提交按钮 支持使用通配符查询value属性: value* 表示为特定字符串 value^ 表示为以某字符开始,例:value^:百度,匹配所有以“百度”文字开始的元素 value$ 表示以某字符结尾,例:value$:测试,匹配所有以“测试”结尾的元素 | 6 | txt | 匹配元素的 innerText,一般用来操作链接;同value系列操作,支持通配符 txt* 表示包含特定字符串 txt^ 表示以特定字符串开始 txt$ 表示以特定字符串结尾 | 7 | src | 用于图片元素的匹配,匹配 img 标签的 src 属性同样支持三种通配符; src* 表示包含特定字符串 src^ 表示以特定字符串开始 src$ 表示以特定字符串结尾
| 8 | href | 用于匹配链接的href属性 同样支持三种通配符 href* 表示包含特定字符串 href^ 表示以特定字符串开始 href$ 表示以特定字符串结尾
| 9 | frame | 如果页面中包含frame/iframe,都可以通过frame属性来定位frame页面中的元素。 frame编号从0开始 |
| 如何组合网页元素特征字符串?网页上的元素作为整个网页的组成部分之一,大部分都具备自己独一无二的特征,只要用特征串描述出该特称,就可以定位到该元素。 |
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 type=”image” …. > 这个类型的input,只能使用index来定位, 特征串:tag:input&type:image&index:0
2 有的表单中使用了<Button 。。。。>提交</Button> 这样的按钮来提交表单,特征串: tag:Button&txt:提交
| - 您所在的用户组无法下载或查看附件
本文由按键学院提供技术支持 2个月学会赚大钱的脚本,报名倒计时1天 按键学院10月实战班卷土来袭
|