xpath写法:

绝对路径:以/开始,逐个增加节点用/分割

特点:不能跨级、类似css中的直接子元素选择器

相对路径:用两个斜杠  //      如  //div//p//a

通配符:xpath也有通配符 *

比如  所有的节点    //div/*    选择div下面所有的直接子元素

根据属性和属性的值的选择  -----------  比如 id  、 class='xxx'等

比如  //*[@style]    选择所有具有style属性的元素   -----  注意前面必须有个@

比如  //p[@spec='len2']   选择所有具有spec值len2的元素   -----等价于-------    css中的p[speec='len2']

比如  根据id选择   //div[@id='food']

比如  根据class选择   //div[@class='cheese']

模糊的属性值定位元素:

       fn:contains(string1,string2)写法    -------   contains()   包含

比如   //*[contains(@style, 'margin-top')]

       fn:starts-with(string1,string2)写法    -------- starts-with()    以什么开头

比如   //*[starts-with(@style, 'margin-top')]

:nth-child(n)写法   -----  选择父元素下第几个子元素

       比如   #food :nth-child(2)

:nth-of-type(n)写法   -------   选择属于父元素下第几个元素的每个元素

       比如  #food>p:nth-of-type(2)

子元素选择?:

选择属于其父元素的第n个某个类型的子元素

如  //*[@id='food']/p[1]   等价于   #food>p:nth-of-type(1)

选择属于其父元素的倒数第n个某个类型的子元素

如  //span[last()-1]

//*[@id='food']/span[last()]

还有像  :nth-last-child(n)

nth-last-of-type(n)

子元素选择:

选择属于其父元素的第n个子元素(基于所有类型元素)

如://*[@id='food']/*[position()=2]

支持其他的  比较操作符

如://*[@id='food']/*[position() < 3]

选择属于其父元素的倒数第n个子元素

如://*[@id='food']/*[position()=last()-1]

组元素:

在xpath中,用  |   来隔开,  如:  //p  |   //button

相邻兄弟选择器:

比如:   //*[@id='food']/following-sibling::div    找当前元素相邻的元素  往下找

比如:   //*[@id='food']/preceding-sinling::div    找当前元素相邻的元素怒  网上找

定位到上级元素:

比如:  //div/..

//div//*[id='food']/..

xpath擅长的:

选择父节点   ..符号

position函数,  结合比较操作符

注意:如果在写代码时,driver.find_elements_by_xpath('.//p')     相对路径时,前面必须要加上点。

Selenium之xpath绝对路径表示法的更多相关文章

  1. 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇

    在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select ...

  2. web中的CSS、Xpath等路径定位方法学习

    今天不到八点就到公司了,来的比较早,趁着有点时间,总结下web中的CSS.Xpath等路径定位定位的方式吧! 简单的介绍下xpath和css的定位 理论知识就不罗列了 还是利用博客园的首页.直接附上代 ...

  3. selenium中Xpath和CSS Selector的使用方法

    一.selenium中Xpath的使用方法 1. 什么是xpath? Xpath是XML的路径语言,通俗一点讲就是通过元素的路径来查找这个标签元素 2. 练习Xpath的工具 火狐浏览器,下载插件Fi ...

  4. selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)

    跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我 ...

  5. selenium:Xpath定位详解

    xpath定位在业界被戏称为元素定位的"屠龙宝刀",宝刀在手,武林我有.现在我们就来详解xpath定位方法. 一.xpath通过元素属性定位 xpath可以通过元素的属性来定位,如 ...

  6. selenium之xpath定位和input文本

    selenium之xpath定位和input文本 xpath简单定位: 打开浏览器的F12 在自己需要定位的元素的那里右键 选择copy->xpath selenium获取input下的文本: ...

  7. selenium+Java,xpath定位方法详解(搬运留存)

    用xpath绝对路径比较费事费力,还容易报错,下面几种模糊定位比较灵活好用 driver.findElement(By.xpath("//*[@id='J_login_form']/dl/d ...

  8. selenium,xpath路径中引入变量

    比如,我需要获取每一条微博的阅读数,总不可能所有微博都找出xpath,然后获取阅读数 找规律 “//*[@id='Pl_Official_MyProfileFeed__20']/div/div[2]/ ...

  9. selenium By.xpath 用法

    搞了一下午... 1.     Xpath往往以“//”开头,属性都是采用@表示,例如//div[@id='_navigation']/div 2.     Firefox有个插件叫做xpather, ...

随机推荐

  1. thinkphp6.0 开启调试模式以及Driver [Think] not supported

    thinkphp6.0 开启调试模式 首先确认自己是通过 composer 进行的下载,然后修改系统目录下的 .example.env 为 .env 文件 修改 config->app.php ...

  2. pat 1065 A+B and C (64bit)(20 分)(大数, Java)

    1065 A+B and C (64bit)(20 分) Given three integers A, B and C in [−2​63​​,2​63​​], you are supposed t ...

  3. 领扣(LeetCode)二维区域和检索 个人题解

    给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 上图子矩阵左上角 (row1, col1) = (2, 1) ,右 ...

  4. Django笔记-连载(记录2018-12-16)

    1.django从1.9开始ForeignKey中的on_delete参数是必须的. hbook = models.ForeignKey('BookInfo')这句代码就让BookInfo类和Hero ...

  5. KDevelop

    ctags+vim还是太累了,还是使用IDE好,尤其是c++模板.KDevelop就不错,符号智能推导以及cmake项目管理和配置,还是挺好用的. Android端的ndk开发使用Android St ...

  6. 【故障公告】docker swarm 集群问题造成新版博客后台故障

    非常抱歉,今天下午 16:55~17:05 左右,由于 docker swarm 集群的突发不稳定问题造成新版博客后台(目前处于灰度发布阶段)无法正常使用,由此给您带来麻烦,请您谅解. 出故障期时,新 ...

  7. windows 10上源码编译libjpeg-turbo和使用教程 | compile and use libjpeg-turbo on windows 10

    本文首发于个人博客https://kezunlin.me/post/83828674/,欢迎阅读! compile and use libjpeg-turbo on windows 10 Series ...

  8. selenium中延时等待三种方式

    selenium中的延时等待方式有三种:强制等待:sleep()  隐示等待:implicitly_wait()  显示等待 WebDriverWait() 1.强制等待:sleep(),time模块 ...

  9. 学习PHP框架只停留在会用层面,职业生涯肯定走不远!

    工作这么多年,也面试过很多PHP工程师,我发现很多PHP工程师只停留在使用框架的层面,然而对框架底层根本没有深入去了解,那么这就会给自己的职业生涯带来一定的瓶颈,当遇到问题的时候你就无从下手,不知道如 ...

  10. 基于HTTP协议的WAF绕过

    一,畸形包绕过 1.先关闭burpsuite长度更新,为get请求,先使用bp的method转换为POST请求 2.get请求中空格使用%20代替,Connection改为keep-alive 二,分 ...