selenium用css、xpath表达式进行元素定位
绝对路径选择
从根节点开始的,到某个节点,每层都依次写下来,每层之间用 / 分隔的表达式,就是某元素的 绝对路径
- Xpath :
/html/body/div - CSS :
html>body>div
相对路径选择
选择所有div元素里面的子节点p
- Xpath :
//div//p - CSS :
- 选择直接子元素(父元素是div的p元素)
div>p - 选择后代子元素(div元素里的所有p元素)
div p
- 选择直接子元素(父元素是div的p元素)
通配符*
选择所有div节点的所有直接子节点
- Xpath :
//div/* - CSS :
div>*
根据属性选择
选择所有class为a的b元素
- Xpath :
//b[@class='a'] - CSS :
.a
选择style属性为color的所有元素
- Xpath :
//*[@style='color'] - CSS :
[style='color']
选择a属性包含b的所有元素
- Xpath :
//*[contains(@a,'b')] - CSS :
[a*='b']
选择a属性开头为b的所有元素
- Xpath :
//*[starts-with(@a,'b')] - CSS :
[a^='b']
选择a属性结尾为b的所有元素(xpath2.0语法,浏览器不支持)
- Xpath :
//*[ends-with(@a,'b')] - CSS :
[a$='b']
选择a属性包含a1,b属性开头b1,c属性结尾为c1的d元素
- CSS :
d[a*='a1'][b^='b1'][c$='c1']
按次序选择元素
选择父元素为div中的p类型第2个子元素
- Xpath :
//div/p[2] - CSS :
div p:nth-child(2)
选择父元素为div的第2个子元素
- Xpath :
//div/*[2] - CSS :
div :nth-child(2)
选取p类型倒数第2个子元素
- Xpath :
//p[last()-1] - CSS :
p:nth-last-child(2)
选择a元素的第n个p子节点
- CSS :
a p:nth-of-type(n)
选择a元素的倒数第n个p子节点
- CSS :
a p:nth-last-of-type(n)
选择a元素的偶数子节点
- CSS :
a p:nth-of-type(n)
选择a元素的奇数子节点
- CSS :
a :nth-child(even)
选择a元素的p类型的偶数子节点
- CSS :
a p:nth-of-type(even)
选择a元素的p类型的奇数子节点
- CSS :
a p:nth-of-type(even)
按范围选择元素
选取option类型第1到2个子元素
- Xpath :
//option[position()<=2]
选择class属性为a的前3个子元素
- Xpath :
//*[@class='a']/*[position()<=3]
选择class属性为a的后3个子元素
- Xpath :
//*[@class='a']/*[position()>=last()-2]
组选择
选所有class为a的元素,和所有id为b的元素
- Xpath :
//*[@class='a'] | //*[@id='b'] - CSS :
.a , #b
根据子节点选择父节点
父节点没有特征,但子节点有特征时,可通过子节点定位父节点
查找后2代元素包含a元素的节点
- Xpath :
//a/../..
兄弟节点选择
选择 class 为 a 的元素的所有后续兄弟节点
- Xpath :
//*[@class='a']/following-sibling::* - CSS :
.a ~ *
选择 class 为 a 的元素的所有前置兄弟节点
- Xpath :
//*[@class='a']/preceding-sibling::* - CSS : 不支持
selenium用css、xpath表达式进行元素定位的更多相关文章
- Python3.x:Selenium中的webdriver进行页面元素定位
Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...
- 网络爬虫之Selenium模块和Xpath表达式+Lxml解析库的使用
实际生产环境下,我们一般使用lxml的xpath来解析出我们想要的数据,本篇博客将重点整理Selenium和Xpath表达式,关于CSS选择器,将另外再整理一篇! 一.介绍: selenium最初是一 ...
- selenium使用笔记(三)——元素定位
selenium进行自动化测试的一个很重要的东西那就是元素定位,如果元素都没法定位就无法操作它,也就无法进行自动化测试了.网上对于元素定位有很多的介绍,很详细很详细的,但是依然有很多新手总是会遇到无法 ...
- selenium自动化测试——常见的八种元素定位方法
selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...
- Python+Selenium笔记(六):元素定位
(一) 前言 Web应用以及包含超文本标记语言(HTML).层叠样式表(CSS).JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务器发送请求,WEB服务器响应请求,返 ...
- selenium(1)-详细解读元素定位的八种方式
安装selenium和下载webdriver 安装selenium pip install selenium pip install selenium -U (判断是否有最新版本) 下载drive ...
- python+selenium笔记(一):元素定位方法
一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和FirePath(设置>附加组件>搜索:输入插件名称>下载安装后重启浏览器) 3.安装完成后,页面右上角 ...
- Selenium基础知识(8大元素定位概说)
1. By.name() 页面源码如下: [html] : <button id="gbqfba"aria-label="Google Search" n ...
- Selenium+Python系列(二) - 元素定位那些事
一.写在前面 今天一实习生小孩问我,说哥你自动化学了多久才会的,咋学的? 自学三个月吧,真的是硬磕呀,当时没人给讲! 其实,学什么都一样,真的就是你想改变的决心有多强罢了. 二.元素定位 这部分内容可 ...
随机推荐
- Adaptive AUTOSAR 学习笔记 14 - 车辆诊断
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf.作者:Zijian/TENG 原文地 ...
- Rip CD on Ubuntu
用Mint自带的banshee可以把CD转换为ogg文件,[Media -> Import Media],然后选择Audio CD,但只能转换为ogg格式,好像不能自动获取ID3标签:比较好的方 ...
- Spring Boot自动配置原理与实践(二)
前言 在之前的博文(Spring Boot自动配置原理与实践(一))中,已经介绍了Spring boot的自动配置的相关原理与概念,本篇主要是对自动配置的实践,即自定义Starter,对原理与概念加深 ...
- VRRP的基本配置
一.实验拓扑 二.实验编址 三.实验步骤: 1.设置PC的IP等信息 2.启动设备(全选) 3.设置路由器端口ip 4. 配置ospf网络 查看: 5.配置VRRP协议 配置完成后查看: 6.验证主备 ...
- windows笔记-在可执行文件或DLL的多个实例之间共享静态数据
全局数据和静态数据不能被同一个. exe或DLL文件的多个映像共享,这是个安全的默认设置.但是,在某些情况下,让一个. exe文件的多个映像共享一个变量的实例是非常有用和方便的. 每个. exe或DL ...
- 狂神说SpringBoot02:运行原理初探
狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习. 微信公众号:狂神说(首发) Bilibili:狂神说Java(视频) 未经作 ...
- jQuery中的常用方法:empty()、each()、$.each()、$.trim()、focus()(二)
<!DOCTYPE html> <html> <head> <title>02_commonMethod.html</title> < ...
- Struts中整合的强大Ognl学习(一)
测试使用了一个JavaBean的User,User中的Address单独封装再形成了一个JavaBean: 为了测试静态方法和静态变量调用,写了一个Util方法: 因为测试Ognl功能过多所以直接使用 ...
- JDBC基础篇(MYSQL)——使用statement执行DML语句(insert/update/delete)
注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package day02_statement; import java.sql.Connection; import java.s ...
- linux centos 设置笔记本合盖不待机
1.设置笔记本合盖不待机 打开配置文件 vi /etc/systemd/logind.conf 将 HandleLidSwitch 变量前的注释 # 去掉 修改 HandleLidSwitch 变量参 ...