为什么要学习元素定位?
1)计算机没有智能到人的程度。
2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入。
3)计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)
元素定位的工具或手段有哪些?
1)css选择器 2)xpath
环境及工具
1.材料:
1)firefox35
2)firebug插件
3)firepath插件
2.安装步骤:查看文末
css选择器
.weixinBottom通过class的值进行定位
#wx通过id的值进行定位
div通过标签进行定位
meta,link匹配两种标签结果集
div a匹配div标签中的所有后代a标签
div>a匹配div后是一个a标签的节点
div+div匹配div后面的同胞div节点
[id]匹配所有含有id属性的标签
[id='wx']匹配所有含有id并且值为wx的标签
[type="submit"]
[class~="Login"]定位标签属性class值中有独立Login的节点
[name|=msapplication]定位标签属性name的值以msapplicatio开头的节点(该节点需为一个完整的单词)
[src^="http://"]匹配scr属性以http://开头的节点
[src$="js"]匹配src属性以js结尾的节点
[src*="ifengimg"]匹配src属性中含有ifengimg的节点
img:only-child匹配所有独生子女的img节点
body>div:nth-child(1) 匹配body的第n个div子节点
body>*:nth-last-child(1) 匹配body的最后一个子节点
:not(link)查找不是link标签的节点
xpath路径表达式
通过节点名定位(http://www.ifeng.com/)
html 定位到html节点
html/head 定位到head节点
html/head/meta 定位好head中的所有meta节点
相对路径定位节点(http://www.ifeng.com/)
//title 使用相对路径定位到title节点
//meta 使用相对路径定位到所有meta节点
使用.和..定位本身和父节点(http://www.ifeng.com/)
/html/head/title/./.. 使用.定位到title本身再使用..定位到title的父节点
/html/head/title/./../body 使用.定位到title本身再使用..定位到title的父节点,然后在定位到body子节点
通过@定位 格式 标签名[@属性名='属性值']
/meta[@name='author'] 定位到所有的meta,再从中找到name=author的那一个
//div[@id] 定位到所有div标签,再过滤出有id属性的节点
通配符定位节点
//* 匹配所有节点
/* 匹配绝对路径最外层
//*[@*] 匹配所有有属性的节点
/html/node()/meta 匹配所有含有meta的节点
糗事百科练习xpath
//div[@id="content-left"]/div 定位到所有糗事帖子节点
//div[@id="content-left"]/div[1] 通过索引定位到第一个节点
//div[@id="content-left"]/div[last()] 通过last()索引定位到结果中的最后一个
//div[@id="content-left"]/div[last()-n] 通过last()-n索引定位到结果集中的倒数第n+1个
//div[@id="content-left"]/div[position()=n] 定位到结果集中第n个节点
//div[@id="content-left"]/div[position()<n] 定位到结果集中索引小于n的节点
//div[@id="content-left"]/div[position()>n] 定位到结果集中索引大于n的节点
//span[i=n] 定位到好笑计数等于n的节点
//span[i>n] 定位到好笑计数大于n的节点
firebug、firepath安装
①安装Firefox(不选自动更新)
②安装firebug插件
或点击从本地文件安装
②安装firepath插件