Selenium使用xpath定位元素
参考资料:
【web自动化测试】xpath元素定位
核心用法
接下来是使用 xpath 必须掌握的核心知识点,只要掌握好这些知识点,基本上能定义到想要的元素。
//input[@name='accout']
- // 开头表示相对路径, 也可以用 / 开头表示绝对路径,一般用相对路径。
- [] 内表示属性条件
- [@name=‘accout’] 表示获取name属性等于accout 的元素
属性选择器
网页元素的任何属性都可以用来定位元素,常见的 name 属性、id 属性、type 属性、class 属性等等。
//input[@type="submit"]
需要注意的是,如果需要用 text 文本定位,则使用 text() 表示。
//a[text()="Sign In"]
如果需要根据模糊文本内容定位。
//a[contains(text(),'新建')]
组合多个属性
多个属性之间可以相互组合,从而更精准的定位到想要的元素。组合可以使用 and 连接,也可以直接在第一个 [] 后继续加第二个 []
//a[1 and contains(@href, "FISH")]
//a[1][contains(@href, "FISH")]
//input[@placeholder='请输入账号' and @name="username"]
//input[@placeholder='请输入账号'][@name="username"]
索引
当通过表达式取出来多个元素时,可以通过索引指定获取第几个。
//div[@id="QuickLinks"]/a[position()=1]
//div[@id="QuickLinks"]/a[position()>3]
//div[@id="QuickLinks"]/a[1]
//div[@id="QuickLinks"]/a[last()]
函数
某些属性的值很长,用等于符号会让表达式看起来很长,因此有时候我们可以使用 contains, starts-with 等函数来精简。
//a[contains(@href, 'FISH')]
通过祖先找后代
//div//input
//div/input
//div/*
通过后代找祖先
//a[.//img[@src="../images/sm_fish.gif"]]
//a[img[@src="../images/sm_fish.gif"]]
//img[@src="../images/sm_fish.gif"]/../..
轴
基本上以上的操作就可以满足95%的使用场景了,还有就是同级元素的查找,尤其是像表格、菜单选项这样的元素经常会用到同级元素。 此时可以使用轴,会更加方便一些。 经常用到的轴有 follow-sibling 和 preceding-sibing。
ancestor:祖先节点 包括父 parent:父节点 preceding-sibling:当前元素节点标签之前的所有兄弟节点
prceding:当前元素节点标签之前的所有节点 following-sibling:当前元素节点标签之后的所有兄弟节点
following:当前元素节点标签之后的所有节点
- 使用语法: 轴名称 :: 节点名称
//div[@id="QuickLinks"]/a[1]/following-sibling::a[1]
直接获取文本
xpath 也支持直接在表达式内获取 text 文本。
//div[@id="MenuContent"]/a[2]/text()'
获取元素的属性
xpath 也支持直接在表达式内获取属性。
$x('//a[text()="Sign In"]/@href')
Selenium使用xpath定位元素相关推荐
- 用XPath精确定位节点元素selenium使用Xpath定位之完整篇
用XPath精确定位节点元素&selenium使用Xpath定位之完整篇 用XPath精确定位节点元素&selenium使用Xpath定位之完整篇 在利用XSL进行转换的过程中,匹配的 ...
- python selenium定位元素方法,python + selenium 练习篇 - 定位元素的方法
1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome ...
- python + selenium 练习篇 - 定位元素的方法
1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome ...
- selenium之find_element_by_xpath定位元素
selenium之find_element_by_xpath定位元素 一 方法 selenium为定位元素提供了较多方法,大致分为单元素定位和多元素定位. # 查找单个元素:find_element_ ...
- web自动化测试之Selenium基础 — XPath定位大全
1.什么是 XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 包含一个标 ...
- Selenium Tips - CSS定位元素
Selenium Tips - CSS定位元素 原文: http://sauceio.com/index.php/2010/01/selenium-totw-css-selectors-in-sele ...
- XPath入门 Selenium使用Xpath定位
XPath入门 Selenium使用Xpath定位 什么是Xpath 什么是XML XML 与 HTML 的主要差异 如何来获取想要的Xpath路径 谷歌浏览器为例 掌握基本语法,以下列的HTML为例 ...
- 使用xpath定位元素
一.xpath的基本语法 xpath(query) :返回query表达式对应的所有节点的selector list. >>> response.xpath('//div[@clas ...
- selenium自学笔记---ecshop购买脚本 xpath定位元素(下拉框,单选框)
本机环境:xamppv3.2.1+ecshop3.0 1.元素定位写对,却一直报错,发现是页面元素加载的太慢,所以加上延时 from selenium import webdriverimport t ...
最新文章
- Windows/Linux上使用fopen相关函数读取大文件
- roadflow2.1版oracle,RoadFlowVue3.0.2更新日志
- pytorch实现attention_Longformer: 局部Attention和全局attention的混搭
- case when判断大于某值_Python 代码判断逻辑太复杂?这里有几条最佳实践和技巧...
- java基础面试题:java中实现多态的机制是什么?
- Linux下区分物理CPU、逻辑CPU和CPU核数
- C++ 定时器的用法:SetTimer和Ontimer
- 739. 每日温度 golang
- windows x64 软件约定
- Python入门学习笔记(6)
- 冈萨雷斯--数字图像处理(MATLAB版)----书籍相关网站
- python-45-ajax数据序列化
- 并查集基础 模板题 hdu1232 畅通工程
- 编译OpenJDK8:configure: could not find or use freetype at location
- HFSS仿真结果输出
- 操作系统软件测试,什么是操作系统_app软件测试全栈系列精品课程_功能测试视频-51CTO学堂...
- 智能指针的标准之争:Boost vs. Loki [转]
- java 根据list中 | 中、英文名称进行排序
- 计算机存储一个字节数是,在计算机中,如果一个存储单元能存放一个字节,则容量为64KB的存储器中的存储单元个数 。...
- 使用AWS Comprehend进行情感分析
热门文章
- 论测试用例的有效更新及杀虫剂悖论
- Delphi 操作Windows系统睡眠-防止系统/电脑 进入睡眠或关闭显示器
- 仓位可参考的定投因子汇总
- python,基于http协议,最常用的是GET和POST两种方法
- 多变量高斯分布的KL散度
- 利用dac0832芯片,采用双缓冲方式,产生梯形波形,用c语言编程,单片机原理及应用习题答案...
- 数据库、MongoDB/Mongoose、cookie与session、密码加密、图片处理、web Socket和Socket.IO框架
- python知识图谱问答系统代码_如何搭建一个基于知识图谱的问答系统(以医疗行业为例)...
- springboot 整合 oshi-core 监控 JVM及操作系统
- scratch(图形化编程工具)做一个塔防游戏!军事迷可以来体验一下哦!