xpath定位语法

在xpath语法中   . 代表当前节点,可有可无   // 代表相对路径 *代表查找出所有符合条件的元素,也可以用标签名,xpath语法中同一个父节点下多个子节点可以使用索引且索引从1开始

 

 

通过任何属性定位:

       driver.find_element_by_xpath(" .//*[@name='tj_trmap'] ")

文本定位:  

       定位地图:driver.find_element_by_xpath("//*[text()='地图']")

逻辑运算定位:

   多重定位:driver.find_element_by_xpath("//*[text()='新闻'and@name='tj_trnews'])

模糊匹配查询:

模糊文本查询: //*[contains(text(),'hao']

模糊匹配某个属性://*[contains(@name,'123')]

模糊匹配以什么开头: //span[starts-with(@id,'s_kw_')]

模糊匹配以什么结尾: //span[ends-with(@id,'kw_wrap')]

模糊正则表达式: //*[matchs(text(),'hao13')]

title定位: 只有标签头,无属性和文本等可定位的东西

           第一种方法:先定位到其父类或者是祖类,然后一层层定位

          第二种方法:当父类或者祖类下只有一个标签头时候,可以先定位到父类或祖类,然后直接是标签头

 

同级标签定位:

following-sibling 定位本节点下面的 //*[@class='num_break'][2]/following-sibling::span[2]

定位最后一个span标签 因为class=“num_break”有两个,我们需要用的是第一个

preceding-sibling 定位本节点上面的://*[contains(@name,'trmap')]/preceding-sibling::a[2]

通过层级父类定位子类定位:

    父级:driver.find_element_by_xpath(".//*[@id='u1']/a[1]")

     祖籍:driver.find_element_by_xpath("//*[@id='head']/div/div[3]/a[1]")

子节点定位父节点或祖节点:

通过子节点定位父节点(<div class="head_wrapper">):/parent和/..都代表的是父节点

.//*[@id='u1']/parent::div   或者是    .//*[@id='u1']/..

通过子类定位祖类(<div id="head">):

.//*[@id='u1']/ancestor::div[2]   或者是   .//*[@id='u1']/..

层级定位://*[@name='tj_trnews']/../a[3]

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值