zoukankan      html  css  js  c++  java
  • xpath和css selector的使用方法

    什么是Xpath?

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

    Xpath的练习建议安装火狐浏览器后,下载插件,FireBug和FirePath,谷歌浏览器可以下载ChroPath插件,进行定位,切换到XPath,默认死格式 先写//*代表定位页面下所有元素,[@id='kw'],尽量不要用xpath来定位,因为xpath是UI自动化中运行效率最慢,代码冗余最高的定位方式

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

    //*[@id='inner1'],@代表通过属性定位

    //*[@class='inner']

    //*[@name='name']

    2、如果标签没有ID、Class、Name三种属性,Xpath还支持属性定位功能,只要你是唯一属性,就可以定位,无论是默认属性还是自定义属性,@代表以属性定位,后面可以接标签中任意属性

    //*[@type='text']

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

    *换为任意标签名,则可根据标签进行筛选,如页面中有多个input框,可以把*换成input,后面再写属性,整体的写法就是//input[@id='i1']

    4、当标签页重复时,Xpath提供了层级过滤,例如:找不到儿子,那么就先找他的爸爸,实在不行可以再找他的爷爷,Xpath提供了索引过滤,通过索引,在List中定位属性,与python的索引有些差别,Xpath从1开始

    支持通过/进行层级递进,找到符合层级关系的标签,只有xpath拥有角标定位,css没有这种方式

    //*[@class='driver'][1]/div[2]/input

    5、上面几种如果都用上了之后还重复的话,我们就可以使用Xpath提供的终极神器,逻辑运算定位。and或or,通过and来缩小过滤的范围,只有条件都符合时才能定位到

    //input[@value='弹框' and @onclick='alertNow();']

    or就相反了,只要这些筛选中,其中一个出现那么就匹配到了

    //select[@name='city' or @size='4']

    什么是Css Selector?

    Css Selector定位实际就是HTML的Css选择器的标签定位,Css Selector的练习建议安装火狐浏览器后,下载插件,FireBug和FirePath,切换到CSS

    1、Css Selector支持id、class的定位,与html中css定位相同

    #后面直接写上id的值,如#i1,.代表class,class定位还提供了多个class定位,通过连续.来缩小范围.c1.c2.c3,.J_Cat.a-all.on有空格就输入.,也可以input#i1input.classname

    2、Css Selector支持任意属性定位

    属性定位方式与xpath相同,直接中括号,加上属性就可以了

    [placeholder='div的id是inner1'],placeholder没有重复的

    3、Css Selector提供了多属性组合过滤

    Css Selector的多属性组合选择过滤,没有and,只需要多个[]连接就可以

    select[name='city'][size='4'][multiple='multiple']

    4、Css Selector也支持层级关系定位

    Xpath的不同Css Selector通过>来区分层级的界定,如果定位到里面没有唯一的属性供css来定位,只能用到xpath

    select>option[value='3']

    5、Css Selector模糊匹配

    ^=匹配属性以什么开头
    [href^='/bug-create']
    $=匹配属性以什么结尾
    input[value$='值']
    *=匹配属性包含什么值
    input[value*='值']
  • 相关阅读:
    JSON的基本认识
    Linux基础 7-10 Bash编程练习4--for循环
    Linux基础7-9 Bash编程--for循环语句
    linux基础 7-3-条件判断语句案例
    Linux基础 7-8 sed命令使用练习
    Linux基础 7-7 set命令的使用
    Linux基础 7-6 Bash脚本编程练习3
    Linux基础7-5 Bash脚本编程--算术运算
    Linux基础7-4 Bash脚本编程练习2
    Linux基础 7-3 Bash脚本编程--条件判断
  • 原文地址:https://www.cnblogs.com/laosun0204/p/9005553.html
Copyright © 2011-2022 走看看