css选择器用法,使用css定位元素,css和xpath元素定位的区别
css定位元素
1.什么是css?
CSS(Cascading Style Sheets)层叠样式表,是一种语言,用来描述html或者xml的显示样式。在css语言中有css选择器,在selenium中同样适用。
提示:在selenium中相比较xpath,更推荐使用css选择器,因为css速度更快
2.css定位方法
driver.find_element_by_css_selector()
3.css定位常用策略
- id选择器,通过id属性定位
- class选择器,通过class属性定位
- 元素选择器,通过元素定位
- 属性选择器,通过属性定位
- 层级选择器,用空格或者大于号表示层级关系
3.1 id选择器
以百度首页为例,通过id选择就只需要:#su
driver.find_element_by_css_selector(‘#su’)
#表示后面跟的是id的属性值,’#su’意思是id属性为’su’的元素
3.2 class选择器
上面的例子可以找到“百度一下”这个按钮,如果想通过class属性找的话,就:.bg s_btn
‘.’这个点表示后面跟的是class属性的值,driver.find_element_by_css_selector(‘.bg s_btn’)就是通过class属性查找属性值为’bg s_btn’的元素
3.3元素选择器
input就是查找所有input元素
driver.find_element_by_css_selector(‘input’)
3.4 属性选择器
[id = ‘su’]查找id属性为‘su’的元素,等同于#su
driver.find_element_by_css_selector(‘[name='ie']’)
3.5 层级选择器
根据元素的父子关系来选择,格式为 element > element 大于号可以用空格代替
driver.find_element_by_css_selector(‘div > [name='ie']’)这个就是查找div下的name属性为ie的元素
注意:直接子节点才可以用>
3.6 css延伸
input[type^=’P’] 找一个input元素,type属性的值以P开头
input[type$=’d’] 找一个input元素,type属性的值以d结尾
input[type*=’w’] 找一个input元素,type属性的值包含w
css元素定位和xpath元素定位的对比
定位方式 |
xpath |
css |
元素名 |
//input |
input |
id |
//input[@id=’su’] |
#su |
class |
//input[@class=’su’] |
.su |
属性 |
//*[starts_with(@属性名,’XXX’)] //*[contains(@属性名,’XXX’)] //*[text()=””] |
input[type$=’XXX’] input[type*=’XXX’] input[type^=’XXX’] |
xpath定位元素参考链接:
https://www.cnblogs.com/sy_test/p/12201868.html
css选择器用法,使用css定位元素,css和xpath元素定位的区别的更多相关文章
- 牢记 31 种 CSS 选择器用法
原文 The 30 CSS Selectors you Must Memorize 由 Jeffrey Way 发表于 2011 年 6 月,介绍了 30 种最常用的 CSS 选择器用法,多加了一种, ...
- 突破css选择器的局限,实现一个css地址选择器?
首先看一个效果,注意地址栏的变化 然后思考一下,用css如何实现? css选择器的局限 选择器是css中的一大特色,用于选择需要添加样式的元素. 选择器的种类有很多,比如 元素选择器 p {color ...
- CSS选择器:#id和.class中间有空格和无空格的区别
相信大家都知道 .class1 .class2 和 .class1.class2 是两种不同的选择规则,但具体怎样不同呢? 首先中间有空格的情况:是选择到.class1类下的.class2类子节点,即 ...
- selenium元素定位之css选择器
在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择. css相较与xpath选择元素优点如下: 表达式更加 ...
- 『心善渊』Selenium3.0基础 — 8、使用CSS选择器定位元素
目录 1.CSS选择器介绍 2.CSS选择器定位语法 3.Selenium中使用CSS选择器定位元素 (1)通过属性定位元素 (2)通过标签定位元素 (3)通过层级关系定位元素 (4)通过索引定位元素 ...
- 简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用
这是简易数据分析系列的第 15 篇文章. 年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进阶用法 ...
- CSS选择器、CSS hack及CSS执行效率
主要内容: 1.CSS选择器.优先级与匹配原理 2. CSS 引入的方式有哪些 ? link 和 @import 的区别是 ? 3.CSS hack 4.如何书高效CSS 一.CSS选择器.优先级与 ...
- CSS选择器以及优先级与匹配原理
最常用的五类CSS选择器 准确而简洁的运用CSS选择器会达到非常好的效果.我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果.在实际工作中,最常用的选 ...
- 如何利用CSS选择器抓取京东网商品信息
前几天小编分别利用Python正则表达式.BeautifulSoup.Xpath分别爬取了京东网商品信息,今天小编利用CSS选择器来为大家展示一下如何实现京东商品信息的精准匹配~~ CSS选择器 目前 ...
随机推荐
- canvas.toDataURL 由于跨域报错的解决方法
关于canvas.toDataURL 由于跨域报错的解决方法 用过canvas,都知道toDataURL这个方法真好用,不仅合成图片用到它,压缩图片也用到它.但有一个问题,就是图片源不能跨域,不然会报 ...
- Spring Data -Specification用法和常用查询方法(in,join,equal等)
Spring Data -Specification用法和常用查询方法(in,join,equal等) 前言 入门例子 Repository层常用写法 Specification 的用法 总结 前言 ...
- Linux 内核PCI去除一个设备
一个 PCI 可用多个不同的方法被从系统中去除. 所有的 card-bus 设备在一个不同的物 理因素上是真正的 PCI 设备, 并且内核 PCI 核心不区分它们. 允许在机器运行时加减 PCI 设备 ...
- c# 写个简单的爬虫。注:就一个方法,没有注释,自己猜~哈哈
和我,在成都的街头走一走,哦~喔~哦~ public JsonResult GetHtml() { string url = "http://www.xxxxxxxxxxxxxxxxxx.c ...
- IAP升级
一.IAP原理 1.在正常情况下,程序运行路流程: 和STM32类似,STM8内部闪存(FLASH)地址起始于 0x8000(STM32是0x08000000),一般情况下,程序文件就从此地 址开始写 ...
- 009.MFC_Spin
数值调节按钮CSpinButtonCtrl属性 Alignment Auto Buddy Set Buddy integer成员函数 SetRange32() SetBase()
- Asp.NetCore3.1版本的CodeFirst与经典的三层架构与AutoFac批量注入
Core3.1 CodeFirst与AutoFac批量注入(最下面附GitHub完整 Demo,由于上传网速较慢,这里就直接压缩打包上传了) ===Core3.1 CodeFirst 数据库为远程阿里 ...
- 谷歌浏览器不能播放audio 报错Uncaught (in promise) DOMException
在2018年4月份发布的Chrome 66正式关掉了声音自动播放,也就是说<audio autopaly></audio> <video autoplay>< ...
- ArrayList、LinkedList、Vector、CopyOnWriteArrayList的区别和源码分析
1. ArrayList ArrayList 是一个数组队列,相当于动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, ...
- Z字形变换 leetcode 6
一.按行存储 1.解题思路 1.通过当前行的不断上下循环移动 2.将字符按序存放入vector中 3.最后再按行取出 2.代码及注释 class Solution { public: string c ...