Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言

一:从根目录/开始

有点像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("..")   查找当前节点的父节点
————————————————
版权声明:本文为CSDN博主「雪国的花儿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012941152/article/details/83011110

find_element_by_xpath()的6种方法的更多相关文章

  1. find_element_by_xpath()的几种方法

    Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言一:从根目录/开始有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_ ...

  2. python3 selenium 切换窗口的几种方法

    第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: # 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driv ...

  3. selenium 切换窗口的几种方法

    第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: # 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前最新打开的窗口 d ...

  4. Python+Selenium自动化-定位页面元素的八种方法

    Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...

  5. selenium+python 处理只读日期控件的2种方法

    前言 有时候测试过程中会遇到日期控件场景,这时候需要特殊处理,下文以12306网站为例 1.处理方式 通常是通过js去除只读属性(2种方法),然后通过send_keys重新写值 from time i ...

  6. JS 判断数据类型的三种方法

    说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...

  7. DataTable 转换成 Json的3种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...

  8. Android之数据存储的五种方法

    1.Android数据存储的五种方法 (1)SharedPreferences数据存储 详情介绍:http://www.cnblogs.com/zhangmiao14/p/6201900.html 优 ...

  9. 两个变量交换的四种方法(Java)

    对于两种变量的交换,我发现四种方法,下面我用Java来演示一下. 1.利用第三个变量交换数值,简单的方法. (代码演示一下) class TestEV //创建一个类 { public static ...

随机推荐

  1. DB2的简单操作

    转 最近在看db2,边读边写了一些,记下来,虽然写的乱七八糟.以备后用. 这些都写的很简单.我觉得也算是一些简单的操作吧,有些也是摘自别人的blog具体是引用哪的就不太记得了. 一.DB2两种注释写法 ...

  2. 清北学堂例题 LUOGU2519 【HAOI2011】PROBLEM A

    题目描述 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) 输入格式 第一行一个整数n,接下来n行每行两个整数,第i+1行 ...

  3. emmmmmmmmmmmmmmmmmm01

    当体会活着有多么难之后,就不要在那么随意的活着,今天有多么不在意自己的人生,明天就要加倍的被别的人左右自己的人生. 多思考,多学习,多总结,多创造.让自己成为有用的人,让自己未来有一天成为自己的主人.

  4. [Codeforces #608 div2]1271A Suits

    Description A new delivery of clothing has arrived today to the clothing store. This delivery consis ...

  5. sourcetree的安装

    参考博文: SourceTree安装教程和GitLab配置详解 关于Atlassian无法注册的问题 SourceTree跳过Atlassian账号,免登陆,跳过初始设置 sourcetree跳过注册 ...

  6. 2.8 学习总结 之 JQ初识

    一.说在前面 昨天 学习了kotlin的相关知识 今天 学习JQ Jquery它是javascript的一个轻量级框架,对javascript进行封装,它提供了很多方便的选择器.供你快速定位到需要操作 ...

  7. gitolite服务器配置的一些心得

    1.假设说有服务器1,hostname为lab1,服务器2,hostname为lab2,分别生成的给对方使用的公钥为server-lab1.pub.server-lab2.pub,服务器1和2都有自己 ...

  8. 五十四、SAP中LVC表格每列的宽度自适应

    一.之前我们的LVC表格输出的界面,有些列太宽余留空白区块太多,有些列则显示不全还带省略号等 二.我们来到'REUSE_ALV_GRID_DISPLAY_LVC'的模块中,查看他的属性 三.我们查看L ...

  9. Wdcp升级Php5.3成功

    在lanmp/wdcp/wdOS的当前版本中,默认的php都是用到5.2.17的版本如需要升级到php5.3的,可使用如下脚本升级(注:此升级无安全漏洞等原因,只为某些追求高版本或应用需求需要高版本, ...

  10. 调试ASP.NET程序

    用VS打开你的项目 从VS中找到"调试"-----"附件到进程",然后选中w3wp.exe,点击附件到进程,然后再发送数据进行调试就可以了