CSS Selector选择web页面的元素

CSS是用来对web页面进行渲染的,因此必然涉及到web页面上某一元素的选择,比如页面某些内容显示效果,可以讲 CSS Selector 语法 天生就是浏览器用来选择元素的,selenium自然就可以使用它用在自动化中,去选择要操作的元素了。

最简单的方法是在浏览器中按F12, 选择想选择的内容,右键复制CSS_SELECTOR

选择单个元素的方法:

find_element(By.CSS_SELECTOR, CSS Selector参数)

选择多个元素的方法:返回一个列表

find_elements(By.CSS_SELECTOR, CSS Selector参数)

选择方法和之前通过ID,CLASS_NAME,TAG_NAME 是一样的

CSS_SELECTOR方法选择class:在1处那加个‘.’

#CSS_SELECTOR 选择class属性:在前面加上一个‘.’
element = wd.find_element(By.CSS_SELECTOR, '.nav-search-input' ) #----1
element.send_keys('考研\n')elements = wd.find_elements(By.CSS_SELECTOR, '.channel-link')
for element in elements:print(element.get_attribute('href'))
wd.quit()

CSS_SELECTOR方法选择ID:在前面加个‘#’

from selenium import webdriver
from selenium.webdriver.common.by import By#创建一个webdriver对象
wd = webdriver.Chrome()
wd.implicitly_wait(10)wd.get('https://www.bing.com')#使用CSS_SELECTOR根据ID选择元素:在前面加个‘#’
element = wd.find_element(By.CSS_SELECTOR, '#sb_form_q')
element.send_keys('matepad11\n')

CSS_SELECTOR方法选择TAG名:直接在‘’中输入tag标签名字

elements = wd.find_elements(By.CSS_SELECTOR, 'div')
<a href="http://www.miitbeian.gov.cn">苏ICP备88885574号</a>

css 选择器支持通过任何属性来选择元素,语法是用一个方括号 [] 。

比如要选择上面的a元素,就可以使用 [href="http://www.miitbeian.gov.cn"] 。

这个表达式的意思是,选择 属性href值为 http://www.miitbeian.gov.cn 的元素。

要选择a节点,里面的href属性包含了 miitbeian 字符串,就可以这样写

a[href*="miitbeian"]

要选择a节点,里面的href属性以 http 开头 ,就可以这样写

a[href^="http"]

要选择a节点,里面的href属性以 gov.cn 结尾 ,就可以这样写

a[href$="gov.cn"]

CSS 选择器 可以指定 选择的元素要 同时具有多个属性的限制,像这样

 div[class=misc][ctype=gun]

CSS_SELECTOR可以使用次序筛选:父节点的第几个

span:nth-child(2)  span元素并且是在父节点的第二个位置

p:nth-last-child(1)  P元素并且是倒数第一个

里面可以是数字也可以是“odd”奇数;“even”偶数

***选择第一个span类型的元素: span:nth-of-type(1)       span:nth-last-of-type(1)

#CSS_SELECTOR选择: nth-child(n) from selenium import webdriver
from selenium.webdriver.common.by import By#创建一个webdriver对象
wd = webdriver.Chrome()
wd.implicitly_wait(5)#访问网站
wd.get('https://cdn2.byhy.net/files/selenium/sample1b.html')spans = wd.find_elements(By.CSS_SELECTOR, 'span:nth-child(2)')
for span in spans:print(span.get_attribute('innerHTML'))
wd.quit()

selenium学习----CSS selector相关推荐

  1. 获取css selector,selenium的css selector元素获取方式

    目标站存在验证码,验证码与用户名关联:登录密码存在加密,加密方式未知(相同用户密码反复测试加密结果不一样):无法使用burp+验证码识别爆破:只能使用selenuim+验证码识别处理: 测试中发现几个 ...

  2. selenium之CSS Selector定位

    什么是CSS Selector? CSS (Cascading Style Sheets) 是一种用于渲染 HTML 或者 XML 文档的语言,CSS 利用其选择器可以将样式属性绑定到文档中的指定元素 ...

  3. jsoup获得css,Jsoup代码解读之五-实现一个CSS Selector

    Jsoup代码解读之七-实现一个CSS Selector 当当当!终于来到了Jsoup的特色:CSS Selector部分.selector也是我写的爬虫框架webmagic开发的一个重点.附上一张s ...

  4. Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector

    The lxml.etree Tutorial :https://lxml.de/tutorial.html python3 解析 xml:https://www.cnblogs.com/deadwo ...

  5. Selenium - CSS Selector

    用CSS(即层叠样式表Cascading Stylesheet) Selector来定位(locate)页面上的元素(Elements).Selenium官网的Document里极力推荐使用CSS l ...

  6. selenium学习一

    chrome版本和chromedriver的对应关系 chromedriver版本 支持的Chrome版本 v2.40 v66-68 v2.39 v66-68 v2.38 v65-67 v2.37 v ...

  7. selenium 学习、工作 记录,附常见异常和工具方法

    selenium 学习.工作 记录,附常见异常和工具方法 基础配置 2020.03.31 开发者模式 设置有认证的http代理 让selenium接管人为打开的chrome 2020.07.23(79 ...

  8. Selenium使用CSS定位 总结

    大部分人在使用selenium定位元素时,用的是xpath定位,css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁 css的定位方法和上一篇的xpath定位方法,两篇学习 ...

  9. uibot css selector定位,UiBot如何使用CSS Selector

    UiBot默认的数据抓取可以抓取整个表格,但是有时候我们并不想抓取整个表格,比方说,我们想将下图所有的头像复制到Excel里: 这个时候我们无法使用数据抓取功能,因为我们并不是想抓取数据,而是要操作网 ...

最新文章

  1. C 上传文件到服务器(含接收端源码)
  2. opencv_contrib编译失败解决方法
  3. 【图像处理opencv】_图像边缘
  4. Scala 类和对象详解
  5. 210326阶段三人脸识别
  6. ADMM参考资料(part1)
  7. int指令01 - 零基础入门学习汇编语言64
  8. 一份详尽的利用 Kubeadm部署 Kubernetes 1.13.1 集群指北
  9. 浅说深度学习(1):核心概念
  10. SLAM GMapping(4)SLAM处理器
  11. 获取当前ip_write_ip_tcl命令你用过吗?
  12. python个人所得税怎么写_Python实现的个人所得税计算器示例
  13. win10搭建无盘服务器配置,关于今天搞定网吧无盘Win10x64一包多配置到底的详细讲解 By 原来我不帅...
  14. 选择第K大元素(快排、快选以及k-选取比较)
  15. 最全HTTP状态码汇总1XX——5XX
  16. 计算机专业对于未来的规划,对所学专业的认识及对未来的规划.doc
  17. python sklearn的训练集测试集根据标签的比例来切分数据集
  18. 【图解算法数据结构】(二)动态规划
  19. mysql 授权sql_mysql授权GRANT ALL PRIVILEGES
  20. 华为p20修改WIFI服务器地址,华为P20上网慢怎么办?一招教你开启WLAN+“隐藏”功能提速...

热门文章

  1. lambda stream流处理异常的方法/Either不终止stream流处理异常
  2. 遇到Ubuntu系统自动杀死运行的程序问题
  3. LTE-5G学习笔记23--5G及移动边缘计算(MEC)学习笔记
  4. vue更新数组时触发视图更新的方法
  5. 如何用美剧提高自己的英语水平
  6. 世上最详细的git原理解释
  7. git ssh 原理
  8. python中集合的元素可以是任意数据类型_详解Python集合数据类型
  9. Linux安装jdk导致linux命令失效(配置JDK环境)(踩坑日记)
  10. Why a JavaScript hater thinks everyone needs to learn JavaScript in the next year