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选择器 目前 ...
随机推荐
- vue v-for循环使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- maven仓库总结,maven私服搭建,批量mvn eclipse:eclipse
配置pom.xml依赖包时在这里找包的描述: http://search.maven.org/#browse 以java为根目录. mvn archtype:generate -DgroupId=zt ...
- Linux 内核 回顾: ISA
设计上 ISA 总线非常老了, 并且是非常地低能, 但是它仍然持有一块挺大的控制设备的 市场. 如果速度不重要并且你想支持老式主板, 一个 ISA 实现要优于 PCI. 这个老标准 的另外一个好处是如 ...
- es6笔记 day2---数组热闹的循环
数组: ES5里面新增一些东西 循环 : 1.for for(let i =0;i<arr.length;i++) 2.while arr.forEach() arr.map() arr.fil ...
- ubuntu16.04 无法wifi链接一段时间掉线且无法再连接
ubuntu16.04 无法wifi链接一段时间掉线且无法再连接,从网上搜索的确认这个一个bug. 解决方法: 1.Get details of your PCI wireless card by r ...
- [数论] hdu 5974 A Simple Math Problem (数论gcd)
传送门 •题意 一直整数$a,b$,有 $\left\{\begin{matrix}x+y=a\\ LCM(x*y)=b \end{matrix}\right.$ 求$x,y$ •思路 解题重点:若$ ...
- 【51.64%】【POJ 1330】Nearest Common Ancestors
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26416 Accepted: 13641 Description A roote ...
- python代码规范以及函数注释规范
摘要 本文给出主Python版本标准库的编码约定.CPython的C代码风格参见PEP7.本文和PEP 257 文档字符串标准改编自Guido最初的<Python Style Guide&g ...
- Dubbo-本地Bean测试
Dubbo本地测试API的Bean 一.建立一个测试类文件 二.测试API // 自己要测试的API public static final XxApi xxApi; 三.注入Bean static ...
- docker(整理中
docker镜像默认的下载地址就是docker的官网,而他们的官网在国内没有节点,时不时就被国家防火墙隔绝,会出现DNS解析不到,或者找不到镜像等狗血提示. 解决的方法有三个: 第一,就是不断尝试,因 ...