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定位常用策略

  1. id选择器,通过id属性定位
  2. class选择器,通过class属性定位
  3. 元素选择器,通过元素定位
  4. 属性选择器,通过属性定位
  5. 层级选择器,用空格或者大于号表示层级关系

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元素定位的区别的更多相关文章

  1. 牢记 31 种 CSS 选择器用法

    原文 The 30 CSS Selectors you Must Memorize 由 Jeffrey Way 发表于 2011 年 6 月,介绍了 30 种最常用的 CSS 选择器用法,多加了一种, ...

  2. 突破css选择器的局限,实现一个css地址选择器?

    首先看一个效果,注意地址栏的变化 然后思考一下,用css如何实现? css选择器的局限 选择器是css中的一大特色,用于选择需要添加样式的元素. 选择器的种类有很多,比如 元素选择器 p {color ...

  3. CSS选择器:#id和.class中间有空格和无空格的区别

    相信大家都知道 .class1 .class2 和 .class1.class2 是两种不同的选择规则,但具体怎样不同呢? 首先中间有空格的情况:是选择到.class1类下的.class2类子节点,即 ...

  4. selenium元素定位之css选择器

    在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择. css相较与xpath选择元素优点如下: 表达式更加 ...

  5. 『心善渊』Selenium3.0基础 — 8、使用CSS选择器定位元素

    目录 1.CSS选择器介绍 2.CSS选择器定位语法 3.Selenium中使用CSS选择器定位元素 (1)通过属性定位元素 (2)通过标签定位元素 (3)通过层级关系定位元素 (4)通过索引定位元素 ...

  6. 简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用

    这是简易数据分析系列的第 15 篇文章. 年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进阶用法 ...

  7. CSS选择器、CSS hack及CSS执行效率

    主要内容: 1.CSS选择器.优先级与匹配原理 2. CSS 引入的方式有哪些 ? link 和 @import 的区别是 ? 3.CSS hack 4.如何书高效CSS  一.CSS选择器.优先级与 ...

  8. CSS选择器以及优先级与匹配原理

    最常用的五类CSS选择器 准确而简洁的运用CSS选择器会达到非常好的效果.我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果.在实际工作中,最常用的选 ...

  9. 如何利用CSS选择器抓取京东网商品信息

    前几天小编分别利用Python正则表达式.BeautifulSoup.Xpath分别爬取了京东网商品信息,今天小编利用CSS选择器来为大家展示一下如何实现京东商品信息的精准匹配~~ CSS选择器 目前 ...

随机推荐

  1. javaScript 删除事件 弹出确认 取消对话框

    javaScript 删除事件 弹出确认 取消对话框 1. <a href="javascript:if(confirm('确实要删除?'))location='http://www. ...

  2. linux scull 函数open 方法

    open 方法提供给驱动来做任何的初始化来准备后续的操作. 在大部分驱动中, open 应当 进行下面的工作: 检查设备特定的错误(例如设备没准备好, 或者类似的硬件错误 如果它第一次打开, 初始化设 ...

  3. WPF 从零开始开发 dotnet Remoting 程序

    本文告诉大家如何不使用框架,从零开始开发一个 dotnet remoting 程序 在我的另一篇博客 WPF 使用RPC调用其他进程 就大概告诉了大家如何在 WPF 使用 dotnet remotin ...

  4. vuex 快速上手,具体使用方法总结(含使用例子)

    网上有关vuex的文章很多,但有些比较复杂,这篇文章能让你快速使用vuex: vuex 用处:管理全局状态(类似全局变量,每个组件都能访问到) vuex 用法: //下面是一个js文件,用最简单最全的 ...

  5. Delta Lake基础操作和原理

    目录 Delta Lake 特性 maven依赖 使用aws s3文件系统快速启动 基础表操作 merge操作 delta lake更改现有数据的具体过程 delta表schema 事务日志 delt ...

  6. jsp中获取页面的相对路径

    1.在jsp页面的上方加上这段java代码 <%//        request.getContextPath() 返回当前页面所在的应用的名字://        request.getSc ...

  7. docker安装启动、配置MySql

    1.安装mysql镜像 docker pull mysql/mysql-server 2.docker中启动Mysql容器 docker run --name mysql01 -d -p 3306:3 ...

  8. 【温故知新】Java web 开发(二)Servlet 和 简单JSP

    系列一介绍了新建一个 web 项目的基本步骤,系列二就准备介绍下基本的 jsp 和  servlet 使用. (关于jsp的编译指令.动作指令.内置对象不在本文讨论范围之内) 1. 首先,在 pom. ...

  9. Java并发编程系列-(9) JDK 8/9/10中的并发

    9.1 CompletableFuture CompletableFuture是JDK 8中引入的工具类,实现了Future接口,对以往的FutureTask的功能进行了增强. 手动设置完成状态 Co ...

  10. tensorflow之tf.train.exponential_decay()指数衰减法

    exponential_decay(learning_rate,  global_steps, decay_steps, decay_rate, staircase=False, name=None) ...