本帖最后由 66球 于 2015-7-1 17:10 编辑 不要在一个元素特征字符串上吊死
本文由按键学院提供技术支持
按键学院交流①群(1群已满):376122403
按键学院交流②群(2群):372671254
按键学院交流③群(3群):170084238
最近经常有遇到新手童鞋反馈,表示使用网页wqm自动分析出的元素特征字符串,测试时死活没有反应,导致无法实现自动点击页面元素等操作,结果往往是换了下特征串的组合就正常了,事后这些童鞋才明白原来元素特征值之间是可以自行组合形成新的元素特征字符串的,所以参考了之前的院刊和资源库资料,重新对这方面整合了下,希望可以帮助新手更好的了解元素特征字符串 |
[tr=rgb(154, 205, 50)]什么是网页元素特征字符串?
|
要了解什么是网页元素特征字符串(以下简称特征串)首先得了解什么是网页,什么是HTML?
从维基百科上可查询到网页定义如下:
网页是一个文件,他存放在世界某个角落的的某一台计算机中,而这台计算机必须是与互联网相连的。网页经由网址( URL )来识别与存取,当我们在浏览器输入网址后,经过一段复杂而又快速的程序,网页文件会被传送到你的计算机,然后再通过浏览器解释网页的内容,再展示到你的眼前。是万维网中的一“页”,通常是HTML格式(文件扩展名为.html或.htm)。网页通常用图像档来提供图画。网页要透过网页浏览器来阅读。网页通常有以下元素:文字资料,图像档案,Applet(在页面内执行的副程式)超链结等。 |
网页通常都是HTML格式的文件,经浏览器解释之后生成的页面,我们要分析网页,首先得了解HTML语言。再查维基百科,HTML定义如下:超文本置标语言(英文:HyperText Markup Language,简称为HTML)是为「网页创建和其它可在网页浏览器中看到的信息」设计的一种置标语言。HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。由蒂姆·伯纳斯-李给出原始定义,由IETF用简化的SGML(标准通用置标语言)语法进行进一步发展的HTML,后来成为国际标准,由万维网联盟(W3C)维护。 |
HTML语言是一种标记语言,咱们通过查看很多网页的页面源文件不难发现它们通常都是由成对的< > … > 包含起来的元素组成,各种不同的元素具备不同的标记名称,有不同的属性。例如百度网页里的,咱们用360浏览器打开百度,右键按钮位置审查元素,提示百度一下按钮的html代码如下:
百度一下按钮具备的属性:type(类型)、value(特征)、id(唯一标识),这些属性的值分辨是:submit、"百度一下"、su
而通常我们使用网页WQM主要是实现自动填表之类的功能,需要面对的主要是表单。
所以在讲解特征串之前,先简介一下表单,在网页源文件中有一种表单标记,在这些标记之间可以添加
网页元素特征字符串是一个用来描述网页元素标签特征的字符串,用于定位网页页面显示中的指定元素。
[tr=rgb(154, 205, 50)]网页元素特征字符串格式
|
大家都知道我们网页按键精灵WQM提供强大的网页分析功能,能够帮助用户详细、直观、实时的分析网页。
点击工具栏上的“网页分析”按钮,或者按热键F9,则启动网页分析功能。此时将在窗口下方显示网页分析器窗口,在网页上移动鼠标,分析器窗口中将显示出鼠标所指向的网页元素的详细信息。同时网页上所指向的网页元素也会突出显示。按热键F9可以暂停分析功能。
- 您所在的用户组无法下载或查看附件
从图上可以看出,目前我们网页按键支持分析出的的元素特征属性有这些:
frame(框架) 、id(唯一标识) 、tag(标签) 、type(类型)、txt(文本) 、value(特征) 、index(索引) 、name(名字)这些特征值可以通过相互组合形成可指定唯一的页面元素元素特征字符串
元素特征字符串组合格式如下:
属性1:值1&属性2:值2&属性3:值3&属性4:值4
特征串由“&”链接,使用“:”分隔属性名称与属性值;连接成一个完整的特征字符串;
特征串目前支持的属性有:
序号 | 属性名称 | 适用元素及简要说明 |
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开始 |
[tr=rgb(154, 205, 50)]如何组合元素特征字符串?
|
网页上的元素作为整个网页的组成部分之一,大部分都具备自己独一无二的特征,只要用特征串描述出该特称,就可以定位到该元素。在通常情况下,网页分析器能够自动给出网页元素特征串,但有很多特殊情况下,给出的特征串不能正确定位元素,此时就需要用户自行组合特征串,可以使用网页分析来测试是否正确 |
例子:还是以百度为例,我们想分析百度首页上的"登陆"这个链接
- 您所在的用户组无法下载或查看附件
网页分析给出的是tag:A&txt:登录,但是点旁边的测试特征串却找不到,所以这个情况下我们就要对这些分析出的属性特征值进行组合测试了,比如我们把标签与索引进行组合成"tag:A&index:13"或者把标签与名称组合成"tag:A&Name:tj_login"都能正确定位到这个元素
- 您所在的用户组无法下载或查看附件
注意下:正常测试到元素的时候,这个元素会闪烁显示并且旁边会显示出相应定位到的元素数量
下面给出一些常用的组合方法以供参考:[backcolor=rgb(154, 205, 50)]1 每一个网页元素都可以有一个id,这个
id在整个网页中都是唯一的,在很多网页的表单中,表单元素都有ID。如果对应的元素有id,那么这个特征串最为简单,直接使用id:theID即可唯一定位到该元素。
[backcolor=rgb(154, 205, 50)]2 早期的网页中,表单元素没有使用id,而是使用了name属性,这个
name一般来说也是唯一的,此时可以使用 tag:INPUT&name:theName 来定位元素;
[backcolor=rgb(154, 205, 50)]3 有一些比较BT的网页表单既不用id,也不用name的,就只能依靠type与index来定位,例如定位表单中的第二个单行文本框:tag:input&type:text&index:1;定位第三个下拉框:tag:select&index:2;
[backcolor=rgb(154, 205, 50)]4 点击按钮时,有ID直接使用ID匹配,如果没有ID,也可以通过文字匹配,例如点击百度搜索按钮:tag:input&value:百度一下;
如果按钮的文字的带有空格,而且空格在两端时,匹配经常失效,此时可以用通配符来匹配:例如google首页上的“手气不错”按钮,它的两端都有一个空格,而且使用的编码的HTML符号 来表示的,直接使用value无法获得准确的匹配,此时就需要使用通配符:tag:input&value*:手气不错
[backcolor=rgb(154, 205, 50)]5 点击链接时,大部分情况下都需要使用txt属性,因为链接没有其他属性可以用来匹配,例如点击网页上的“下一页”链接
,tag:a&txt:下一页,有的网页上会用下面的格式:“[下一页]”,此时可以使用通配符:tag:a&txt*:下一页。
[backcolor=rgb(154, 205, 50)]6 Frame页面元素,有些网页中会采用Frame或者Iframe,在这些Frame子页面中,不能直接控制,需要指定frame才能进行控制,这里
采用frame的索引来进行定位。可以使用网页分析器来查看具体的
frame页面的index。然后再在特征字符串上加上frame,例如点击按键精灵首页上的知识库链接,就需要采用以下格式:frame:0&tag:a&txt:知识库。
[tr=rgb(154, 205, 50)]特殊情况处理
|
[backcolor=rgb(154, 205, 50)]1 在某些网页中,可能会使用一些特殊的标记例如: 这个类型的input,只能使用index来定位, 特征串:tag:input&type:image&index:0
[backcolor=rgb(154, 205, 50)]2 有的表单中使用了[backcolor=rgb(154, 205, 50)] 这样的按钮来提交表单,特征串: tag:Button&txt:提交
今天关于元素特征字符串就介绍到这里,事实上确实有一部分的网页确实整的很变态,有些元素不管怎么组合特征字符串可能还是定位不到,比如最经常见得就是很多网页的页面元素的index—索引值当网页第二次打开就会变化,下期打算跟大家分享一下此类问题的一些可行的解决方案或者替代方法
其他相关连院刊
"我叫你你敢答应吗?"之如何设置网页元素特征码
抓取网页指定内容(资料),获取网页里的图片
想学习进阶版网页技术可以查看
【院刊】-【201505期】GET、POST初解析
点此查看院刊总目录谢谢大家阅读,记得给小编送支花花 ! 顺手点个赞