数据分析侠 2018-05-06
世界上最远的距离大概就是明明看到一个页面元素矗在那里,但是我却定位不到!!
selenium定位元素的方法有很多种,像是通过id、name、class_name、tag_name、link_text等等,但是这些方法局限性太大,拿id属性来说,首先一定不会每个元素都有id属性,其次元素的id属性也不一定是固定不变的。所以这些方法了解一下即可,我们真正需要熟练掌握的是通过xpath和css定位,一般只要掌握一种就可以应对大部分定位工作了。
下面总结一下xpath的定位方法,结合自己练习的实例加深一下了解
一、首先需要了解一下xpath的概念和基本语法
网上关于xpath的教程比较少,可以看一下菜鸟教程和w3cschool的相关资料:http://www.runoob.com/xpath/xpath-tutorial.html、http://www.w3school.com.cn/xpath/index.asp
二、常用的xpath定位方法
1.利用标签内的属性进行定位
(1)通过id属性
xpath = "//a[@id='start_handle']"<br />//a表示选取所有a元素,加上[@id='start_handle']表示选取id属性为'start_handle'的a元素
(2)通过name属性定位
xpath = "//input[@name='custName']"
概括:xpath = "//标签名[@属性='属性值']"
属性判断条件:最常见为id,name,class等等,属性的类别没有特殊限制,只要能够唯一标识一个元素即可。
当某个属性不足以唯一区别某一个元素时,也可以采取多个条件组合的方式,如下:
xpath= "//input[@type='XX' and @name='XX']"
2.利用text()方法定位
如上所示,在【上一步】按钮的<a></a>标签之间有一段文本“上一步”,那么可以通过下面这种方式来定位
xpath = "//a[text()='上一步']"
【开始办理】按钮可以使用如下路径:xpath = "//a[text()='开始办理']"
3.利用contains()方法定位,也叫模糊定位
xpath= "//标签名[contains(@属性, '属性值')]"
xpath3 = "//a[contains(@href, 'basicinfo')]" <br />取href的关键信息'basicinfo',这样也可以定位到【开始办理】按钮<br /><br /><br />