1. 绝对定位:

driver.find_element_by_xpath("/html/body/div[x]/form/input") x 代表第x个 div标签,注意,索引从1开始而不是0

2.相对路径:

driver.find_element_by_xpath("//input[x]") 定位第x个input标签,[x]可以省略,默认为第一个

3.标签属性定位:

driver.find_element_by_xpath("//a[@href='/industryMall/hall/industryIndex.ht']")
driver.find_element_by_xpath("//input[@value='确定']")
driver.find_element_by_xpath("//div[@class = 'submit']/input")
driver.find_element_by_xpath("//input[@type='name' and @name='kw1']")

driver.find_element_by_xpath("//标签[contains(text(),'文本值')]")

driver.find_element_by_xpath("//input[contains(text(),'型号')]")

driver.find_element_by_xpath(“//a[contains(@href, ‘logout’)]”)

a.starts-with      例子: input[starts-with(@id,'ctrl')]                  解析:匹配以ctrl开始的属性值

b.ends-with        例子:input[ends-with(@id,'_userName')]     解析:匹配以userName结尾的属性值   好像不行,经常报错,不推荐

c.contains()        例子:Input[contains(@id,'userName')]         解析:匹配含有userName属性值

driver.find_element_by_xpath("//input[@id='kw1']//input[start-with(@id,'nice']/div[1]/form[3])  如果上面的单一方法不能完成定位,也可以采取组合式定位

4.Xpath轴方式定位元素 

1、child  选取当前节点的所有子元素

driver.find_element_by_xpath("//div[@id='B']/child::div")

2、parent  选取当前节点的父节点

driver.find_element_by_xpath("//div[@id='C']/parent::*/parent::div")

driver.find_element_by_xpath("//div[@id='C']/..")   后面两点也代表上一级的父节点

3、descendant选取当前节点的所有后代元素(子、孙等)

"//form[@id='form']/descendant::input[@id='su']"

4、ancestor  选取当前节点的所有先辈(父、祖父等)

//*[@id='%s']/ancestor::td/preceding-sibling::td[1]

5、preceding-sibling选取当前节点之前的所有同级节点

driver.find_element_by_xpath("//div[@id='D']/preceding-sibling::div[1]").text

6、following-sibling选取当前节点之后的所有同级节点

driver.find_element_by_xpath("//td[contains(text(),’17051915200001’)]/following-sibling::td[8]/a[@class='link']")

7、preceding   选取文档中当前节点的开始标签之前的所有节点

//p[text()='出售方信息']/preceding::div[contains(text(),'拟定网签价')]

8、following   选取文档中当前节点的结束标签之后的所有节点

//td[@width='50%']/following::div[contains(text(),'行政区域')]

selenium之Xpath定位的更多相关文章

  1. selenium之xpath定位和input文本

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

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

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

  3. selenium:Xpath定位详解

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

  4. 二:unittest框架配合selenium之xpath定位

    刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的 ...

  5. java selenium (六) XPath 定位

    xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. 阅读目录 什么是xpath xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面, ...

  6. selenium 使用xpath定位不到

    <button id="" class="btn btn-some" type="submit"> <i class=&q ...

  7. 自动化测试-4.selenium的xpath定位

    前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...

  8. python selenium模块 xpath定位

    ''' 附w3xpath语法地址 https://www.w3school.com.cn/xpath/xpath_syntax.asp 总结: 返回匹配到所有符合条件的第一个节点,对象是 <cl ...

  9. selenium使用Xpath定位之完整篇

    其中有一片文章提到了xpath元素定位,但是该文章中有些并不能适应一些特殊与个性化的场景.在文本中提供xpath元素的定位终极篇,你一定能在这里找到你需要的解决办法. 第一种方法: 通过绝对路径做定位 ...

  10. selenium webdriver——XPath 定位

    baidu.html代码如下 ....<form id="form" class="fm" action="/s" name=&quo ...

随机推荐

  1. 一、IP地址

    IP地址 1)网络地址 IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络. 2)广播地址 广播地址通常称为直接广播地址,是为了区分受限广播地址. 广播地址与网 ...

  2. java连接sql server数据库

    1.新建项目,导入包  sqljdbc4.jar或sqljdbc.jar(jdk1.7版本) 2.新建类文件ConnectionDB.java package hello; import java.s ...

  3. 研究SSIS时候的一些常见错误

    1.[OLE DB 目标 [59]] 错误: SSIS 错误代码 DTS_E_OLEDBERROR.出现 OLE DB 错误.错误代码: 0x80004005.已获得 OLE DB 记录.源:“Mic ...

  4. OGNL,表达式上下文ContextMap

    1.OGNL表达式 object graph navigation language:对象图导航语言 存取对象属性:调用对象方法:字段类型转换等. <input type="text& ...

  5. Windows无法启动MySQL服务,错误1067

    问题:mysql服务启动异常 找出原因 检查D:\mysql-5.6.20-winx64\data目录下client-02.err文件的错误信息(以err为后缀名的文件是mysql的日志文件) 修改配 ...

  6. HTML表格相关元素

    <table> 标签定义 HTML 表格.简单的 HTML 表格由 table 元素以及一个或多个 tr.th 或 td 元素组成.tr 元素定义表格行,th 元素定义表头,td 元素定义 ...

  7. Linux漏洞分析入门笔记-Off-By-One(栈)

    ubuntu-16.04.5(X86) IDA7.0 0x00.漏洞描述 1.什么是off by one?又称1字节溢出. 源字符串长度等于目标缓冲区长度时,将源字符串复制到目标缓冲区可能会导致off ...

  8. python在Android下的自动化测试用法

    # This Python file uses the following encoding: utf-8from com.android.monkeyrunner import MonkeyRunn ...

  9. SSM整合的简单实现

    整合需要的jar包和源码将在文末给出 本文参考黑马程序员视频,由于视频用的环境和我使用的环境不同,建议使用我的环境及jar包(比较新) 一 整合思路 第一步 整合dao层 mybatis和spring ...

  10. MySQL几个join

    1.因为关系型数据库的基本原理,是基于“关系代数”.最重要的一类关系代数,就是2个集合之间的运算. 从集合运算的视角,去理解SQL中的几个常用join (1)inner join (2)left jo ...