• selenium之xpath定位


    由于最新版火狐不在支持FireBug等开发工具,可以通过https://ftp.mozilla.org/pub/firefox/releases/ 下载49版本以下的火狐就可以增加Firebug等扩展了。

    什么是XPATH?

    XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。通俗一点讲就是通过元素的路径来查找到这个标签元素。

    工具

    Xpath的练习建议大家安装火狐浏览器后,下载插件,FireBug。

    Xpath的定位方法

    定位方法是一些固定的格式和规则,利用火狐浏览器在开发者模式下,输入//*即可定位当前页面所有的标签。

    1.Xpath支持ID,class,name定位(例如:定位百度的搜索框)

    通过Id来定位
    //*[id='kw']
    通过name来定位
    //*[@name='wd']
    通过class来定位
    //*[@class='s_ipt']

    2.如果没有ID,class,name标签,XPATH还支持属性定位。(比如href='//www.baidu.com/cache/sethelp/help.html'标签是唯一属性时)

    通过其他唯一属性来定位
    //*[@href='//www.baidu.com/cache/sethelp/help.html']

    3.当标签的属性重复时,Xpath提供了通过标签来进行过滤。

    当input标签含有多个时,通过input下的其他属性进行定位
    //input[@placeholder='x2']
    即首先定位到所有的Input标签,然后再筛选出placeholder='x2'的标签

    4、当标签页重复时,Xpath提供了层级过滤

    例如:找不到儿子,那么就先找他的爸爸,是在不行可以在找他的爷爷

    支持通过 / 进行层级递进,找到符合层级关系的标签
     
    //form/div/input[@placeholder="用户名"]
     
    当层级都重复时,可以通过单个层级的属性进行定位
     
    //form/div[@class='login-user']/input

    5.当父级或兄弟级属性都相同无法定位时,Xpath提供了索引过滤。

    通过索引,在List中定位属性,与python的索引有些差别,Xpath角标从1开始
     
    //select[@name='city'][1]/option[1]

    6.上面集中如果都用上了之后还重复的话,我们就可以使用Xpath提供的终极神器,逻辑运算定位。and 或 or

    通过and来缩小过滤的范围,只有条件都符合时才能定位到
     
    //select[@name='city' and @size='4' and @multiple="multiple"]
     
    or就相反了,只要这些筛选中,其中一个出现那么久匹配到了
     
    //select[@name='city' or @size='4']
  • 相关阅读:
    Bandit Wargame Level18 Writeup(interactive shell and .bashrc )
    Bandit Wargame Level12 Writeup
    Natas Wargame Level25 Writeup(头部注入+POST/GET注入)
    Mybatis 加载 Mapper配置的四种方式
    设计模式(四)---- 代理模式
    execute() 和 sumbit() 的区别
    Executors提供的四种线程池
    线程的三种实现方法
    同一个线程多次调用start()会出现的问题
    线程的介绍
  • 原文地址:https://www.cnblogs.com/fancyl/p/9662810.html
Copyright © 2020-2023  润新知