注意:xpath的定位 同一级别的多个标签 索引从1开始 而不是0

1. 绝对定位:

   此方法最为简单,具体格式为

          xxx.find_element_by_xpath("绝对路径")

    具体例子:

         xxx.find_element_by_xpath("/html/body/div[x]/form/input") x 代表第x个 div标签,注意,索引从1开始而不是0

        此方法缺点显而易见,当页面元素位置发生改变时,都需要修改,因此,并不推荐使用。

2.相对路径:

相对路径,以‘//’开头,具体格式为

 xxx.find_element_by_xpath("//标签")

具体例子:

xxx.find_element_by_xpath("//input[x]") 定位第x个input标签,[x]可以省略,默认为第一个

  相对路径的长度和开始位置并不受限制,也可以采取以下方法

xxx.find_element_by_xpath("//div[x]/form[x]/input[x]"), [x]依然是可以省略的

3.标签属性定位:

           3.1标签属性定位,相对比较简单,也要求属性能够定位到唯一一个元素,如果存在多个相同条件的标签,默认只是第一个,具体格式

      xxx.find_element_by_xpath("//标签[@属性==‘属性值’]")

属性判断条件:最常见为id,name,class等等,目前属性的类别没有特殊限制,只要能够唯一标识一个元素都是可以的

具体例子

       xxx.find_element_by_xpath("//a[@href='/industryMall/hall/industryIndex.ht']")
       xxx.find_element_by_xpath("//input[@value='确定']")
       xxx.find_element_by_xpath("//div[@class = 'submit']/input")

          当某个属性不足以唯一区别某一个元素时,也可以采取多个条件组合的方式,具体例子

        xxx..find_element_by_xpath("//input[@type='name' and @name='kw1']")

 

       3.2 当标签属性很少,不足以唯一区别元素时,但是标签中间中间存在唯一的文本值,也可以定位,其具体格式

       xxx.find_element_by_xpath("//标签[contains(text(),'文本值')]") 

   

     具体例子:

 

        xxx.find_element_by_xpath("//iunpt[contains(text(),'型号:')]")  

       注意:尽量在html中复制此段文本,避免因为肉眼无法分辨的字符导致定位失败