• 自动化测试 Xpath选择器一些注意点


    1、Xpath表达式:比较强大、灵活的选择元素的方式

    2、目前主流的浏览器chrome、firefox、edge、safari都支持xpath语法,xpath和xpath2两个版本,目前支持的是xpath1的语法

    3、Xpath:爬虫框架Scrapy、手机APP框架 Appium

    一、

    根据id属性来选择:[@属性名=“属性值”]

    选择id为tes的元素  //*[@id='tes']

    选择有id属性的元素 //*[@id]

    选择所有属性id名 且tag为p  //p[@id]

    二、

    根据class选择:注意 属性值必须一模一样,

    div元素 //div[@class='tes']

    三、

    选择属性包含multiple的元素

    <select class="multi_choice" multiple>

    //*[@multiple]

    四、

    CSS:选择属性值包含某个字符串的元素abc

    a[href*="abc"]

    CSS::选择属性值某个字符开头的

    a[href^='http']

    CSS:选择属性值谬个字符串结尾的元素

    a[href$='gov.cn']

    Xpath:属性style 含有color

    //*[contains(@style,'color')]

    XPath:属性style以color开头//*[starts-with(@style,'color')]

    目前浏览器不支持:以..为结尾

    五、

    Xpath : 可以按照次序选择:

    选择p元素的第二个子元素://p[2]

    父元素为div中的p的第二个元素

    //div/p[2]

    p类型的最后一个元素

    //p[last()]

    倒数第二个元素

    //p[last()-1]

    六、

    xpath:可以选择子元素的次序范围

    比如:选择option类型的第一个到第二个子元素

    //option[position()<=2]  or  //option[position()<3]

    获取class属性为a的前三个子元素

    //*[@class='a']/*[position()<3]

    选择后三个元素

    //*[@class='a']/option[position()>=last()-2]

    七、

    组选择器

    选择所有的option和h4元素,可以使用

    // option | //h4

    选择所有clss为a和class b的元素 可以使用:

    //*[@class='a'] | //*[@class='b']

    八、

    选择父节点

    /..:属性本身没有什么特征

    选择id为b的父节点

    //*[@id = 'b']/..

    九、

    兄弟节点 : following-sibling::

    选择class为b的元素的所有后续兄弟节点div

    //*[@class='b']/follwing-sibling::div

    选择前面的兄弟节点

    //*[@class='b']/preceding-sibling::div

    十、

    陷阱:找某个对象的内部的p,则需要在前面加上,

    需要在某个对象加上.

    c = self.driver.find_element_by_id("c")

    e = c.find_elements_by_xpath(".//p")

  • 相关阅读:
    viewport
    Flex 布局教程
    鼠标放上去盒子向上滑动
    鼠标放图片上,原图上划上去一个透明图片
    类加载过程
    JVM入门
    redis简介和安装
    JMH和Disruport
    线程池
    JUC
  • 原文地址:https://www.cnblogs.com/zz-1021/p/13805945.html
Copyright © 2020-2023  润新知