css定位方法
1、可以通过元素的id、class、标签这三个常规属性直接定位到
2、#代表id driver.find_element_by_css_selector('#kw')
3、.代表class driver.find_element_by_css_selector('.s_ipt')
4、直接使用标签来定位(最好结合其他方法组合定位) driver.find_element_by_css_selector('input')
5、定位name属性 driver.find_element_by_css_selector("[name='wd']")
6、通过type属性定位 driver.find_element_by_css_selector('[type="text"]')
7、可以通过标签与属性组合来定位
1-通过标签与class属性来定位:driver.find_element_by_css_selector('input.s_ipt')
2-通过标签与id属性来定位:driver.find_element_by_css_selector('input#kw')
3-通过标签与其他属性定位:driver.find_element_by_css_selector('input[name="wd"]')
8、通过层级关系定位:driver.find_element_by_css_selector('form#form>span>input')
9、根据索引定位元素:driver.find_element_by_css_selector('div#switch>a:nth-child(2)')
css逻辑运算:
1、同时匹配多个属性:
driver.find_element_by_css_selector('input[id="kw"][name="wd"]').send_keys('python')
driver.find_element_by_css_selector('input[value="百度一下"][type="submit"]').click()
css高级用法:
后代元素:所有具有相同祖先的元素(包括子元素)
子元素:所有具有相同parent的元素(范围小于后代元素)
后代选择器:<S1> <S2> s2是s1的后代元素
子元素选择器:<s1>大于号<s2> S1与s2是父子关系
连续使用:#many>div>p.special 元素之间不存在越级
相邻兄弟元素选择器:
<s1>+<s2>:<s1>与<s2>是同级关系并且紧靠一起 示例:#food + div
非相邻兄弟元素选择器:
使用场景:同一父元素的子元素,元素之间没有紧靠在一起
<s1>~<s2> <s1>与<s2>是同级关系,无需紧靠一起
#food ~ div
属性选择器:
*[属性=”属性值”] *表示任意元素标签名,如p, div,li,button,等等
p[spec*='len2'] #属性spec包含len2的p元素
p[spec^='len2'] #属性spec以len2开头的p
p[spec$='len2'] #属性spec以len2结尾的p
组选择器:
<s1>,<s2> <s1>与<s2>表示两组不同的css选择器
示例: div,span,p 同时选择所有div,span,p元素
伪类nth-child,nth-of-type:
使用场景:根据下标选择子元素,下标从1开始
<s1>:nth-child(n) #从<s1>中选择第n个元素,且<s1>表示的元素必须位于父元素的第n位
<s1>:nth-of-type(n) #从<s1>中选择第n个元素,对<s1>表示的元素处于第几位没有要求
<s1>表示一组选择器
例子:
driver.find_element_by_css_selector('#kw').send_keys('python') driver.find_element_by_css_selector('.s_ipt').send_keys('python') driver.find_element_by_css_selector('input') # 通过name 属性来定位 driver.find_element_by_css_selector("[name='wd']").send_keys('python') # 通过type属性定位 driver.find_element_by_css_selector('[type="text"]').send_keys('python') # 通过标签与class属性来定位 driver.find_element_by_css_selector('input.s_ipt').send_keys('python') # 通过标签与id属性来定位 driver.find_element_by_css_selector('input#kw').send_keys('python') # 通过标签与其他属性来定位 driver.find_element_by_css_selector('input[name="wd"]').send_keys('python') # css通过层级关系定位 driver.find_element_by_css_selector('form#form>span>input').send_keys('python')
原文地址:https://www.cnblogs.com/aiyumo/p/12576150.html
- Android应用程序使用两个LinearLayout编排5个Button控件
- Robot Framework | 02 从抛弃RIDE开始创建你的RFS测试
- [接口测试 - http.client篇] 14 源码初探及其工作机制分析
- 接口测试 | 25 requests + pytest测试实例
- 接口测试 | 22 requests基础入门
- 图的存储结构的实现(C/C++实现)
- 树和二叉树的存储结构的实现(C/C++实现)
- Selenium3源码之异常模块篇
- 移位密码原理及算法实现
- 排序算法的实现(C/C++实现)
- [开源] 分享导出博客园文章成本地 Markdown 文件存储的工具
- 单表代替密码原理及算法实现
- 【Android开发学习笔记之一】5大布局方式详解
- Selenium3源码之common下action_chains.py模块分析
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- 【SpringBoot DB 系列】Redis 高级特性之 Bitmap 使用姿势及应用场景介绍
- 踩坑:一次年轻代GC长暂停问题的解决与思考
- 监听MySQL的binlog日志工具分析:Canal
- 小解c# foreach原理
- 3分钟短文:任命管理员,给Laravel普通用户提权
- this到底是什么?
- ES5面向对象基础
- 面试官问我啥是OAuth 2.0,两个案例讲懂他~
- 年轻代频繁ParNew GC,导致http服务rt飙高
- JWT 使用 nimbus-jose-jwt 进行解码
- linux centos7 编译安装python3 --shell脚本
- Qt音视频开发36-USB摄像头解码qcamera方案
- JS中属性描述符
- CSS3实现彩色炫酷文字
- 动态import来拆分代码后发布问题