网页元素特征字符串

摘要:
网页元素特征字符串是一个用于描述页面元素标记特征的字符串,用于定位指定元素。框架编号从0.3开始。如何组合网页元素的特征字符串?作为整个网页的组成部分之一,网页上的大部分元素都有自己独特的特点。只要要素字符串描述了特殊名称,就可以找到元素。通常,网页分析器可以自动给出网页元素的特征字符串,但在许多特殊情况下,给定的特征字符串无法正确定位元素。此时,用户需要自己组合特征字符串,并可以使用网页分析进行测试。

网页元素特征字符串


1.什么是网页元素特征字符串

要了解什么是网页元素特征字符串(以下简称特征串)首先得了解什么是网页,什么是HTML
从维基百科上可查询到网页定义如下:


网页是一个文件,他存放在世界某个角落的的某一台计算机中,而这台计算机必须是与互联网相连的。网页经由网址( URL )来识别与存取,当我们在浏览器输入网址后,经过一段复杂而又快速的程序,网页文件会被传送到你的计算机,然后再通过浏览器解释网页的内容,再展示到你的眼前。是万维网中的一“页”,通常是HTML格式(文件扩展名为.html.htm)。网页通常用图像档来提供图画。网页要透过网页浏览器来阅读。
网页通常有以下元素:文字资料,图像档案,Applet(在页面内执行的副程式)超链结等。

网页通常都是HTML格式的文件,经浏览器解释之后生成的页面,我们要分析网页,首先得了解HTML语言。再查维基百科,HTML定义如下:

超文本置标语言(英文:HyperText Markup Language,简称为HTML)是为「网页创建和其它可在网页浏览器中看到的信息」设计的一种置标语言。HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。由蒂姆·伯纳斯-李给出原始定义,由IETF用简化的SGML(标准通用置标语言)语法进行进一步发展的HTML,后来成为国际标准,由万维网联盟(W3C)维护。

HTML语言是一种标记语言,由成对的< > … </ > 包含起来的元素组成,各种不同的元素具备不同的标记名称,有不同的属性。例如说一个链接的HTML代码如下:
<a href=http://www.xn518.net>虚拟518论坛</a>
它的标签名称为是A,具备属性 href,该属性值为http://www.xn518.net
不同的网页元素具备不同的标签名称,同时也具备不同的属性名称与值。HTML语言的所有标记请参考相关教程。我们需要面对的主要是表单。
在讲解特征串之前,先简介一下表单,在网页中有一种表单标记<form></form>,在这些标记之间可以添加<input> <select> <textarea>等表单元素,这些元素可以为用户提供输入、选择等功能,而表单中的内容也可以被提交到服务器完成交互。<input> 元素类型比较丰富,根据其type不同,具备的功能也不同,type=”text”为单行的文本输入框,type=password”为密码输入框,type=radio”为单选框,type=checkbox”为复选框,type=button”为普通的按钮,type=reset”为表单复位按钮,type=submit”为提交表单按钮;<select>标记为用户提供下拉选择框,<textarea>标记为用户提供多行文本输入。

网页元素特征字符串是一个用来描述网页元素标签特征的字符串,用于定位指定元素。


2.网页元素特征字符串格式

特征串格式如下:


属性1:值1&属性2:值2&属性3:值3&属性4:值4
特征串由“&”链接,使用“:”分隔属性名称与属性值;连接成一个完成的特征字符串;

特称串目前支持的属性有:

序号属性名称适用元素及简要说明
1id所有元素
2index所有元素,此index为具备除开index特征之外,其他相同特侦的元素集合中的index,一般在指定特征时无法唯一定位元素时使用,从0开始计算
3name具备name属性的表单元素
4type具备type属性的表单元素
5value具备value属性的表单元素,一般用来匹配提交按钮
value* value^ value$支持使用通配符查询value属性:
value* 表示为包含,例:value*:手气不错 [google首页]
value^ 表示为以某字符开始,例:value^:百度,匹配所有以“百度”文字开始的元素
value$ 表示以某字符结尾,例:value$:测试,匹配所有以“测试”结尾的元素
6txt匹配元素的innerText,一般用来操作链接
txt* txt^ txt$ value系列操作,支持通配符
value* 表示包含特定字符串
value^ 表示以特定字符串开始
value特定字符串结尾
7src用于图片元素的匹配,匹配img 标签的src属性
src* src^ src$同样支持三种通配符;
src* 表示包含特定字符串
src^ 表示以特定字符串开始
src$ 表示以特定字符串结尾
8href用于匹配链接的href属性
href* href^ href$同样支持三种通配符
href* 表示包含特定字符串
href^ 表示以特定字符串开始
href$ 表示以特定字符串结尾
9frame如果页面中包含frame,或者是iframe,都可以通过frame属性来定位frame页面中的元素。
frame编号从0开始


3.如何组合网页元素特征字符串?

网页上的元素作为整个网页的组成部分之一,大部分都具备自己独一无二的特征,只要用特征串描述出该特称,就可以定位到该元素。
在通常情况下,网页分析器能够自动给出网页元素特征串,但有很多特殊情况下,给出的特征串不能正确定位元素,此时就需要用户自行组合特征串,可以使用网页分析来测试。下面给出一些常用的组合方法以供参考:
1)在最新的XHTML规范中,每一个网页元素都可以有一个id,这个id在整个网页中都是唯一的,在很多网页的表单中,表单元素都有ID。如果对应的元素有id,那么这个特征串最为简单,直接使用id:theID即可唯一定位到该元素。
2)早期的网页中,表单元素没有使用id,而是使用了name属性,这个name一般来说也是唯一的,此时可以使用 tag:INPUT&name:theName来定位元素;
3)有一些比较BT的网页表单既不用id,也不用name的,就只能依靠type与index来定位,例如定位表单中的第二个单行文本框:tag:input&type:text&index:1定位第三个下拉框:tag:select&index:2;
4)点击按钮时,有ID直接使用ID匹配,如果没有ID,也可以通过文字匹配,例如点击百度搜索按钮:tag:input&value:百度一下
如果按钮的文字的带有空格,而且空格在两端时,匹配经常失效,此时可以用通配符来匹配:例如google首页上的“手气不错”按钮,它的两端都有一个空格,而且使用的编码的HTML符号来表示的,直接使用value无法获得准确的匹配,此时就需要使用通配符:tag:input&value*:手气不错
5)点击链接时,大部分情况下都需要使用txt属性,因为链接没有其他属性可以用来匹配,例如点击网页上的“下一页”链接
tag:a&txt:下一页有的网页上会用下面的格式:“[下一页]”,此时可以使用通配符:tag:a&txt*:下一页
6)Frame页面元素,有些网页中会采用Frame或者Iframe,在这些Frame子页面中,不能直接控制,需要指定frame才能进行控制,这里采用frame的索引来进行定位。可以使用网页分析器来查看具体的frame页面的index。然后再在特征字符串上加上frame,例如点击按键精灵首页上的知识库链接,就需要采用以下格式:frame:0&tag:a&txt:知识库

4.特殊情况处理

在某些网页中,可能会使用一些特殊的标记,
例如
<input type=”image” …. >
这个类型的input,只能使用index来定位,
例如
tag:input&type:image&index:0

有的表单中使用了<Button 。。。。>提交</Button>
这样的按钮来提交表单,可以使用
tag:Button&txt:提交

免责声明:文章转载自《网页元素特征字符串》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux定时重启服务器智能威胁分析之图数据构建——关联数据为环境数据图:如资产、资产脆弱性、文件信息、用户信息、IT系统架构信息等 行为数据图:如网络侧检测告警、终端侧检测告警、文件分析日志、应用日志、蜜罐日志、沙箱日志等 情报数据图:各类外部威胁情报 知识数据图:各类知识库(如ATT&amp;amp;CK,CAPEC,CWE)等下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【H5】15 表单 其四 数据发送

一旦在客户端上验证了表单数据,就可以提交表单了。 并且,由于我们在上一篇文章中介绍了验证,因此我们准备提交! 本文着眼于用户提交表单时会发生什么—数据将流向何处,以及到达表单后如何处理? 我们还将研究与发送表单数据相关的一些安全问题。 先决条件: 基本的计算机知识,对HTML的理解以及HTTP和服务器端编程的基本知识。 目的: 了解提交表单数据...

ASP.NET MVC 5 Web编程5 -- 页面传值的方式

本篇文章将讲述MVC的页面传值方式,具体包括:后端向前端传值(Controller向View传值);前端向后端传值(View向Controller传值);Action与Action之间的传值。 回顾 我们回顾下在ASP.NET WebForms中,页面之间最常用的传值方式,有以下几种: a). QueryString(也叫URL传值) b). Sessio...

HTML静态网页(图片热点、网页划区、拼接及表单的使用)

图片热点:   规划出图片上的一个区域,可以做出超链接,直接点击图片区域就可以完成跳转的效果。 示例: 网页划区:   在一个网页里,规划出一个区域用来展示另一个网页的内容。 示例:   网页的拼接:   在一个网络页面内,规划出多个页面窗口,以表格拼接的形式展示出来。 示例: 表单: <form id="" name="" method="p...

php获取form表单单选按钮和复选框的值

获取单选按钮的值 在<form>表单中,单选按钮 radio 一般是成一组一组出现的,具有相同 name值 和不同的 value 值,在一组单选按钮中,同一时间只可能有一个被选中。 来举一个单选按钮 radio的例子,在这个代码实例中有两个 name = "sexy" 的单选按钮,选中其中一个并单击"提交"按钮,将会返回被选中的单选按钮的 va...

MVC 一页多个提交表单(Multi_Form in one page)

前几天遇到同一页有多个提交表单的情况,经过艰苦奋斗终于解决。与大家分享一下。 我的要求有两个:①可以验证显示错误信息②显示错误信息的时候原保留填写的内容 未查找资料之前想了3个解决方案: ①将页面中所有的提交对象封装为一个对象,提交的时候只提交所需要的内容,当有错误信息的时候将已填的内容付给此此对象然后返回它。 优点:可以使用ModelState验证 缺点...

HTML中的按钮

html中的五种按钮 (1)<button></button> 表单外调用一个js文件时使用 (2)<input type="button" value=""/> 表单内调用一个js函数时使用 (3)<input type="submit" value=""/> 在表单内提交表单,更多使用(2) (4)<...