• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

返回列表 12345678» / 18
发新话题 回复该主题

[技术交流] 【院刊】-【201410期】"我叫你你敢答应吗?"之如何设置... [复制链接]

1#

"我叫你你敢答应吗?"之

如何设置网页元素特征码




叫它它不答应?想点击某个网页上的按钮,特征字符串分明是对的,为什么就是没有反应?各种离奇事件,让我们一起走进 解密档案之网页元素特征字符串~




网页元素特征字符串是个啥?
网页元素特征字符串是一个用来描述网页元素标签特征的字符串,用于定位指定元素
特征串格式:
属性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"



代码:
  1. Call Plugin.Web.bind("WQM.exe")
  2. Call Plugin.Web.go("http://zc.qq.com")
  3. 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注册页面填表示例代码:
  1. Call Plugin.Web.bind("WQM.exe")
  2. Call Plugin.Web.go("http://zc.qq.com")
  3. Call Plugin.Web.Htmlinput("按键学院","name:nick") //昵称
  4. Call Plugin.Web.HtmlInput(123456,"id:password")//密码
  5. Call Plugin.Web.HtmlInput(123456,"id:password_again")//确认密码
  6. Call Plugin.Web.HtmlClick("id:sex_2") //性别
  7. Call Plugin.Web.HtmlSelect("2014年","tag:input&type:text&index:7")//出生 年
  8. Call Plugin.Web.HtmlSelect("8月","tag:input&type:text&index:8")//出生 月
  9. Call Plugin.Web.HtmlSelect("7日","tag:input&type:text&index:9")//出生 日
  10. Call Plugin.Web.HtmlInput("ajxy","id:code")//验证码
  11. 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月实战班卷土来袭



    已有1评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2023/10/5 18:31:13 执行 审核帖子 操作
    按键学院免费交流群:376122403

    按键学院招生计划
    按键学院系统教程
    2#

    谢谢分享谢谢分享谢谢分享谢谢分享

    3#

    看看

    4#

    的值分辨是:submit

    唐银华
    5#

    好好学学这节内容

    6#

    楼主好人啊,解答了很久的疑问

    7#

    学习

    8#

    学习学习

    9#

    似的发射点发射点

    10#


    11#

    求教了

    12#

    加加加加加加减

    13#

    进来学习西夏

    14#

    学习 学习

    15#

    学习一下

    16#

    2113132132123

    17#

    谢家皇后

    18#

    222222222

    19#

    .

    20#

    我来看看哦

    发新话题 回复该主题