zoukankan      html  css  js  c++  java
  • Selenium彩蛋篇-Xpath使用方法

    转: http://www.imdsx.cn/index.php/2017/07/27/xpath/

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

    什么是Xpath?

    XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素。

    工具

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

    Xpath使用方法

    注:默认死格式 先写 //* 代表定位页面下所有元素

    1、Xpath支持ID、Class、Name定位功能

    通过ID定位
     
    //*[@id='kw']
     
    通过Class定位
     
    //*[@class='class_name']
     
    通过Name定位
     
    //*[@name='name']

    2、如果标签没有ID、Class、Name三总属性,Xpath还支持属性定位功能

    @ 代表以属性定位,后面可以接标签中任意属性
     
    //*[@other='attribute']

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

    将 * 换位任意标签名,则可根据标签进行筛选
     
    //input[@placeholder='用户名']

    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']

    我通常把Xpath看成是屠龙刀。武林至尊,宝刀Xpath,Css不出,谁与争锋?

  • 相关阅读:
    HDU Problem 1811 Rank of Tetris【拓扑排序+并查集】
    POJ Problem 2367 Genealogical tree【拓扑排序】
    HDU Problem 2647 Reward【拓扑排序】
    HDU Problem 1285 确定比赛名次【拓扑排序】
    HDU Problem HDU Today 【最短路】
    HDU Problem 3665 Seaside【最短路】
    HDU Problem 一个人的旅行 【最短路dijkstra】
    HDU Problem 1596 find the safest road【最短路dijkstra】
    Beyond Compare文本合并进行内容替换要注意什么
    用这些工具都可以比较代码的差异
  • 原文地址:https://www.cnblogs.com/shmily2018/p/9278860.html
Copyright © 2011-2022 走看看