zoukankan      html  css  js  c++  java
  • selenium用css、xpath表达式进行元素定位

    绝对路径选择

    从根节点开始的,到某个节点,每层都依次写下来,每层之间用 / 分隔的表达式,就是某元素的 绝对路径
    • Xpath : /html/body/div
    • CSS : html>body>div

    相对路径选择

    选择所有div元素里面的子节点p
    • Xpath : //div//p
    • CSS :
      1. 选择直接子元素(父元素是div的p元素)div>p
      2. 选择后代子元素(div元素里的所有p元素)div p

    通配符*

    选择所有div节点的所有直接子节点
    • Xpath : //div/*
    • CSS : div>*

    根据属性选择

    选择所有class为a的b元素
    • Xpath : //b[@class='a']
    • CSS : .a
    选择style属性为color的所有元素
    • Xpath : //*[@style='color']
    • CSS : [style='color']
    选择a属性包含b的所有元素
    • Xpath : //*[contains(@a,'b')]
    • CSS : [a*='b']
    选择a属性开头为b的所有元素
    • Xpath : //*[starts-with(@a,'b')]
    • CSS : [a^='b']
    选择a属性结尾为b的所有元素(xpath2.0语法,浏览器不支持)
    • Xpath : //*[ends-with(@a,'b')]
    • CSS : [a$='b']
    选择a属性包含a1,b属性开头b1,c属性结尾为c1的d元素
    • CSS : d[a*='a1'][b^='b1'][c$='c1']

    按次序选择元素

    选择父元素为div中的p类型第2个子元素
    • Xpath : //div/p[2]
    • CSS : div p:nth-child(2)
    选择父元素为div的第2个子元素
    • Xpath : //div/*[2]
    • CSS : div :nth-child(2)
    选取p类型倒数第2个子元素
    • Xpath : //p[last()-1]
    • CSS : p:nth-last-child(2)
    选择a元素的第n个p子节点
    • CSS : a p:nth-of-type(n)
    选择a元素的倒数第n个p子节点
    • CSS : a p:nth-last-of-type(n)
    选择a元素的偶数子节点
    • CSS : a p:nth-of-type(n)
    选择a元素的奇数子节点
    • CSS : a :nth-child(even)
    选择a元素的p类型的偶数子节点
    • CSS : a p:nth-of-type(even)
    选择a元素的p类型的奇数子节点
    • CSS : a p:nth-of-type(even)

    按范围选择元素

    选取option类型第1到2个子元素
    • Xpath : //option[position()<=2]
    选择class属性为a的前3个子元素
    • Xpath : //*[@class='a']/*[position()<=3]
    选择class属性为a的后3个子元素
    • Xpath : //*[@class='a']/*[position()>=last()-2]

    组选择

    选所有class为a的元素,和所有id为b的元素
    • Xpath : //*[@class='a'] | //*[@id='b']
    • CSS : .a , #b

    根据子节点选择父节点

    父节点没有特征,但子节点有特征时,可通过子节点定位父节点
    查找后2代元素包含a元素的节点
    • Xpath : //a/../..

    兄弟节点选择

    选择 class 为 a 的元素的所有后续兄弟节点
    • Xpath : //*[@class='a']/following-sibling::*
    • CSS : .a ~ *
    选择 class 为 a 的元素的所有前置兄弟节点
    • Xpath : //*[@class='a']/preceding-sibling::*
    • CSS : 不支持

    参考链接,一个非常好用,适合入门的python学习网站:http://www.byhy.net/
  • 相关阅读:
    一起谈.NET技术,Silverlight中二维变换详解 狼人:
    一起谈.NET技术,通过16道练习学习Linq和Lambda 狼人:
    一起谈.NET技术,技巧:使用可扩展对象模式扩展HttpApplication 狼人:
    一起谈.NET技术,ASP.NET的运行原理与运行机制 狼人:
    一起谈.NET技术,.NET远程处理框架详解 狼人:
    一起谈.NET技术,从原理来看Silverlight 4的架构 狼人:
    一起谈.NET技术,ASP.NET MVC中对Model进行分步验证的解决方法 狼人:
    一起谈.NET技术,解决编程中序列化问题 狼人:
    一起谈.NET技术,asp.net控件开发基础(2) 狼人:
    一起谈.NET技术,asp.net控件开发基础(1) 狼人:
  • 原文地址:https://www.cnblogs.com/xiaocaiqa/p/15311513.html
Copyright © 2011-2022 走看看