自动化定位——通过XPath定位元素

时间:2021-12-02 14:27:04

XPath是一种XML文档中定位元素的语言。该定位方式也是比较常用的定位方式

1通过属性定位元素

   find_element_by_xpath("//标签名[@属性='属性值']")

id属性:

  find_element_by_xpath("//input[@id='kw']")

class属性:

  find_element_by_xpath("//input[@class='s_ipt']")

name属性:

  find_element_by_xpath("//input[@name='wd']")

maxlength属性:

  find_element_by_xpath("//input[@maxlength='255']")

 

2通过标签名定位元素

指所有input标签元素

  find_element_by_xpath("//input")

 

3父子定位元素

查找有父亲元素的标签名为span,它的所有标签名叫input的子元素

  find_element_by_xpath("//span/input") 

 

4根据元素内容定位元素(非常实用)

  find_element_by_xpath("//p[contains(text(),'京公网')]") 

 

注:contains的另一种用法

  //input[contains(@class,'s')]

说明class属性包含s的元素。

 

5组合定位元素

//父元素标签名/标签名的属性值:指的是span下的input标签下class属性为s_ipt的元素

  find_element_by_xpath("//span/input[@class='s_ipt']")

多个属性组合定位(挺常用的)

指的是input标签下id属性为kw且name属性为wd的元素

  find_element_by_xpath("//input[@class='s_ipt' and @name='wd']")

指的是p标签下内容包含“京公网”且id属性为jgwab的元素

  find_element_by_xpath("//p[contains(text(),'京公网') and @id='jgwab']")  

 

比较懒惰的方法:

使用搜狐浏览器的firebug工具,复制XPath路径,不过这种方式对层级要求高,到时候自己再修改下。