1.id定位
2.link text 与 partial link text 定位
3.css定位
4.XPath 定位
XPath 是一种在 XML 文档中定位元素的语言。因为 HTML 可以看做 XML 的一种实现,所以 selenium 用
户可是使用这种强大语言在 web 应用中定位元素。
如下的代码,定位最后一个元素:
1.相对路径定位:层级定位
find_element_by_xpath("//input[@id=’input’]") #通过自身的id属性定位
find_element_by_xpath("//span[@id=’input-container’]/input") #通过上一级目录的 id 属性定位 find_element_by_xpath("//div[@id=’hd’]/form/span/input") #通过上三级目录的 id 属性定位 find_element_by_xpath("//div[@name=’q’]/form/span/input")#通过上三级目录的 name 属性定位
示例:
绝对定位:以/开头,非常依赖页面的顺序和位置,不要使用,因为依赖代码位置,一旦修改就需要变更
相对定位:以//开头,不依赖页面的顺序和位置,只看整个页面中有没有符合表达式的元素.//*[@id="kw"]
2个属性值满足:and 和or
3.文本定位:元素text内容,text()
4.contains(@属性/text(),value):包含函数
//div[contains(@class,"text-center")]
//div[contains(text(),"订单")]
5.轴定位:应用场景是当某个元素的各个属性及其组合都不足以定位时,那么可以利用其兄弟节点或者父节点等各种可以定位的元素进行定位。
轴运算:
ancestor:祖先节点包括父
parent:父节点
preceding:当前元素节点标签之前的所有节点.(html页面先后顺序)
preceding-sibling:当前元素节点标签之前的所有兄弟节点
following:当前元素节点标签之后的所有节点.(html页面先后顺序)
following-sibling当前元素节点标签之后的所有兄弟节点
使用语法:
/轴名称::节点名称[@属性=值]
//div[text()="代销订单"]/following-sibling::div//*[text()="签证订单"]
原则:尽量不要使用绝对路径和下标;匹配一个元素;选择元素稳定的属性(可变的属性不要作为元素定位手段)