CSS元素定位之通过元素的标签或者元素的id、class属性定位详解


Posted in HTML / CSS onSeptember 23, 2022

前言

大部分人在使用selenium定位元素时,用的是xpath元素定位方式,因为xpath元素定位方式基本能解决定位的需求。xpath元素定位方式更直观,更好理解一些。

css元素定位方式往往被忽略掉了,其实css元素定位方式也有它的价值;相对于xpath元素定位方式来说,css元素定位方式更快,语法更简洁。

一、css元素定位:通过元素的标签或者元素的id、class属性定位

1、css元素定位方式可以通过元素的id、class、标签这三个常规属性直接定位。

2、举例:如下是百度输入框的的html代码:

<input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd"/>

①css元素定位使用#号表示id属性,如:#kw

②css元素定位方式使用.表示class属性,如.s_ipt

③css元素定位方式也可以直接使用标签名称,而没有任何标识符,如:input

CSS元素定位之通过元素的标签或者元素的id、class属性定位详解

二、css元素定位:通过元素的其它属性定位

1、css元素定位除了可以通过标签、class、id这三个常规属性定位外,也可以通过元素的其它属性定位。例如: 

CSS元素定位之通过元素的标签或者元素的id、class属性定位详解

三、css元素定位:通过标签与属性的组合来定位元素 

CSS元素定位之通过元素的标签或者元素的id、class属性定位详解

四、css元素定位:通过元素的层级关系来定位

1、css元素定位可以达到类似xpath元素定位通过元素的层级关系来定位,例如:

xpath元素定位: //form[@id='form']/span/input 和 //form[@class='fm']/span/input 也可以用css实现 

CSS元素定位之通过元素的标签或者元素的id、class属性定位详解

五、css元素定位:通过元素的并列索引来定位 

1、以下图为例:与四相似。 

CSS元素定位之通过元素的标签或者元素的id、class属性定位详解

2、css元素定位也可以通过索引option:nth-child(1)来定位子元素,这点与xpath写法用很大差异,其实很好理解,直接翻译过来就是第几个小孩 

CSS元素定位之通过元素的标签或者元素的id、class属性定位详解

六、css元素定位:通过对元素属性的逻辑运算来定位

1、css同样也可以实现逻辑运算,同时匹配两个属性,这里跟xpath不一样,无需写and关键字。

CSS元素定位之通过元素的标签或者元素的id、class属性定位详解

七、处理selenium中的css_selector定位元素的模糊匹配问题

① 匹配元素的id属性,先指定一个html标签,然后加上“#”符号,再加上id的属性值。

driver.find_element_by_css_selector('div#ID').click()

②匹配元素的class属性,先指定一个html标签,然后加上“.”符号,再加上class的属性值。

driver.find_element_by_css_selector('div.CLASS').click()

③匹配元素的其他属性。【这里不再是‘.’或者‘#’符号,而是采用了"标签名[属性名=属性值]"的方式定位元素】

driver.find_element_by_css_selector('div[name=NAME]').click()

④组合匹配【支持定位元素对象通过两组或两组以上的属性】

driver.find_element_by_css_selector('div[name=NAME][type=TYPE]').click()

⑤匹配头部

driver.find_element_by_css_selector('div[style^="sp.gif"]').click()

⑥匹配尾部

driver.find_element_by_css_selector('div[style$="sp.gif"]').click()

⑦匹配中间

driver.find_element_by_css_selector('div[style*="sp.gif"]').click()

到此这篇关于CSS元素定位之通过元素的标签或者元素的id、class属性定位的文章就介绍到这了,更多相关css元素定位内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
让IE6支持css3,让 IE7、IE8 都支持CSS3
Oct 09 HTML / CSS
CSS3属性box-shadow使用指南
Dec 09 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
Sep 10 HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
Nov 19 HTML / CSS
html5文字阴影效果text-shadow使用示例
Jul 25 HTML / CSS
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
Apr 08 HTML / CSS
用HTML5制作一个简单的弹力球游戏
May 12 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
Jun 27 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
Dec 11 HTML / CSS
利用html+css实现菜单栏缓慢下拉效果的示例代码
Mar 30 HTML / CSS
html+css实现环绕倒影加载特效
Jul 07 HTML / CSS
HTML基础详解(下)
Oct 16 HTML / CSS
微信小程序纯CSS实现无限弹幕滚动效果
Sep 23 #HTML / CSS
使用 CSS 构建强大且酷炫的粒子动画效果
详解CSS中postion和opacity及cursor的特性
Aug 14 #HTML / CSS
html网页引入svg图片的4种方式
HTML静态页面获取url参数和UserAgent的实现
Aug 05 #HTML / CSS
CSS使用Flex和Grid布局实现3D骰子
Aug 05 #HTML / CSS
css中:last-child不生效的解决方法
Aug 05 #HTML / CSS
You might like
神族 PROTOSS 概述
2020/03/14 星际争霸
fgetcvs在linux的问题
2012/01/15 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
php广告加载类用法实例
2014/09/23 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python中关于日期时间处理的问答集锦
2013/03/08 Python
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
Python 探针的实现原理
2016/04/23 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
公司中秋节活动方案
2014/02/12 职场文书
团队经理竞聘书
2014/03/31 职场文书
甜品店创业计划书
2014/08/14 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
会议欢迎词
2015/01/23 职场文书
施工安全保证书
2015/05/09 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS