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 相关文章推荐
详解CSS3 用border写 空心三角箭头 (两种写法)
Sep 29 HTML / CSS
多重CSS背景动画实现方法示例
Apr 04 HTML / CSS
css3发光搜索表单分享
Apr 11 HTML / CSS
css3进阶之less实现星空动画的示例代码
Sep 10 HTML / CSS
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
Jan 27 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
Jul 25 HTML / CSS
微信浏览器取消缓存的方法
Mar 28 HTML / CSS
详解HTML5中的Communication API基本使用方法
Jan 29 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
Aug 18 HTML / CSS
Html5定位终极解决方案
Feb 05 HTML / CSS
HTML5中的网络存储实现方式
Apr 28 HTML / CSS
HTML通过表单实现酒店筛选功能
May 18 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
计数器详细设计
2006/10/09 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
javascript,jquery闭包概念分析
2010/06/19 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
大学生就业策划书范文
2014/04/04 职场文书
研讨会通知
2015/04/27 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
2019年工作总结范文
2019/05/21 职场文书
Minikube搭建Kubernetes集群
2022/03/31 Servers
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang