一、从根目录/开始

有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_selector中的>号/html/body/div/p

二、根据元素属性选择:

查找具体的元素,必须在前面输入标准开头//,表示从当前节点寻找所有的后代元素

  • //div/* div下面的所有的元素
  • //div//p 先在整个文档里查找div,再在div里查找p节点(只要在内部,不限定是否紧跟) ;等价于 css_selector里的('div p')
  • //div/p p是div的直接子节点; 等价于 css_selector里的('div > p')
  • //*[@style] 查找所有包含style的所有元素,所有的属性要加@; 等价于 css_selector里的('*[style]')
  • //p[@spec='len'] 必须要加引号;等价于 css_selector里的("p[spec='len']")
  • //p[@id='kw'] xpath中对于id,class与其他元素一视同仁,没有其他的方法

三、选择第几个节点

  • //div/p[2] 选择div下的第二个p节点 ;等价于css_selector里的div>p:nth-of-type(2) 符合p类型的第二个节点
  • //div/*[2] 选择div下第二个元素
  • //div/p[position()=2] position()=2 指定第二个位置; 等价于上面的 //div/p[2]
  • position()>=2 位置大于等于2
  • position()<2 位置小于2
  • position()!=2 位置不等于2
  • //div/p[last()] 选择div下的倒数第一个p节点; last()倒数第一个
  • //div/p[last()-1] 选择div下的倒数第二个p节点;
  • //div/p[position()=last()] 倒数第一个
  • //div/p[position()=last()-1] 倒数第二个
  • //div/p[position()>=last()-2] 倒数第一个,第二个,第三个

四、组合选择

  • //p | //button 选择所有的p和button,等价于css_selector里的 p, button
  • //input[@id='kw' and @class='su'] 选择id=kw 并且 class="su"的input元素

五、兄弟节点的选择相邻后面的兄弟节点的选择:

  • following-sibling:: 两个冒号
  • //div/following-sibling::p 选择div里相邻的p节点
  • 相邻前面的兄弟节点的选择:preceding-sibling:: 此方法在css_selector中没有
  • //div/preceding-sibling::p[2] 选择div里前面相邻的第二个节点,不加[2]选择的是前面的所有的p节点

六、选择父节点

  • //p[@spec='len']/.. 选择p节点的上层节点 此方法在css_selector中没有
  • //p[@spec='len']/../.. 上层节点的上层节点

七、在webelement对象里面使用查找Xpath 查找时,必须使用.指明当前节点

  • food = driver.find_element_by_id('food')
  • eles = food.find_elements_by_xpath(".//p") .指明当前节点
  • eles = food.find_elements_by_xpath("..") 查找当前节点的父节点

参考博客:https://blog.csdn.net/u012941152/article/details/83011110

selenium--find_element_by_xpath()方法汇总的更多相关文章

  1. selenium定位方法实例

    selenium定位方法实例 首先打开浏览器输入微博的网址,将网页最大化,等待3秒 from selenium import webdriver import time driver = webdri ...

  2. selenium定位方法(二)

    selenium定位方法(二)  1.xpath定位:xpath是在XML中查找节点所在的路径的表达式 1)绝对路径的Xpath表达式 例:/html/body/div/div[1]/ul//li[3 ...

  3. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  4. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

  5. C#读写文件的方法汇总_C#教程_脚本之家

    C#读写文件的方法汇总_C#教程_脚本之家 http://www.jb51.net/article/34936.htm

  6. UITextView实现placeHolder方法汇总

    UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户的作用.可是UITextView就没那么幸运了,apple没有给UITextView提供 ...

  7. 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)

    这篇文章主要介绍了将编码从GB2312转成UTF-8的方法汇总(从前台.程序.数据库),需要的朋友可以参考下 一个网站如果需要国际化,就需要将编码从GB2312转成UTF-8,其中有很多的问题需要注意 ...

  8. 本地获取System权限CMD方法汇总(转)

    本地获取System权限CMD方法汇总(转) 稍微整理了下,大概有三种方法可以本地获取system权限的cmd,但前提都是当前用户具备administrator权限. 下面列举的三种方法各有千秋,看你 ...

  9. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

  10. .net(C#)操作文件的几种方法汇总

    .net(C#)操作文件的几种方法汇总 System.IO命名空间下类的用法:在System.IO名称空间中包含了用于文件输入输出的主要类.File:实用类,提供许多静态方法,用于移动.复制和删除文件 ...

随机推荐

  1. xmppmini 项目详解:一步一步从原理跟我学实用 xmpp 技术开发 2.登录的实现

    第二章登录的实现 金庸<倚天屠龙记> 张三丰缓缓摇头,说道:“少林派累积千年,方得达成这等绝技,决非一蹴而至,就算是绝顶聪明之人,也无法自创.”他顿了一顿,又道:“我当年在少林寺中住过,只 ...

  2. python随用随学20200220-异步IO

    啥是异步IO 众所周知,CPU速度太快,磁盘,网络等IO跟不上. 而程序一旦遇到IO的时候,就需要等IO完成才能进行才能进行下一步的操作. 严重拖累了程序速度. 因为一个IO操作就阻塞了当前线程,导致 ...

  3. Java的异常处理机制

    异常 异常指的是,程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 由图可知,异常的根类是throwable.其下有两个子类 Error:严重错误Error,无法通过处理的错误,只 ...

  4. Go1.14发布了,快来围观新的特性啦

    如期而至,Go1.14发布了,和往常一样,该版本保留了Go 1兼容性的承若,这个版本的大部分更新在工具链 .运行时库的性能提升方面,总的来说,还是在已有的基础上不断优化提成,大家期待的泛型还没有到来, ...

  5. rabbitmq安装(ubuntu)

    本文大量复制自:https://blog.csdn.net/qq_22638399/article/details/81704372 # 安装erlang apt-get install erlang ...

  6. MySQL安装详细步骤(附迅雷下载链接)

    环境:windows10.64bit.mysql 8.0.19 迅雷下载链接8.0版本 https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-in ...

  7. 【54】目标检测之Bounding Box预测

    Bounding Box预测(Bounding box predictions) 在上一篇笔记中,你们学到了滑动窗口法的卷积实现,这个算法效率更高,但仍然存在问题,不能输出最精准的边界框.在这个笔记中 ...

  8. You are my great sunshine

    "何为孤寂?" "清风,艳日,无笑意." "可否具体?" "左拥,右抱,无情欲." "可否再具体?" ...

  9. P1196 [NOI2002]银河英雄传说 【带权并查集】

    思路 用sum记录每个舰队的战舰数量, tohead 记录当前舰离舰首的距离,那么求任意两舰之间有多少舰显然就是 abs( tohead[i] - tohead[j] ) - 1: CODE #inc ...

  10. Elasticsearch配置集群环境

    环境选择:            1.方案一:准备三台机器   每一台机器一个节点            2.方案二:准备一台机器   启动三个节点,用端口号区分即可            3.ES启 ...