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 渐变(Gradients)之CSS3 径向渐变
Jul 08 HTML / CSS
实例教程 一款纯css3实现的数字统计游戏
Nov 10 HTML / CSS
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
Apr 24 HTML / CSS
CSS3中颜色线性渐变实战
Jul 18 HTML / CSS
CSS3 rgb and rgba(透明色)的使用详解
Sep 25 HTML / CSS
使用phonegap检测网络状态的方法
Mar 30 HTML / CSS
突袭HTML5之Javascript API扩展3—本地存储全新体验
Jan 31 HTML / CSS
HTML5验证以及日期显示的实现详解
Jul 05 HTML / CSS
canvas绘制视频封面的方法
Feb 05 HTML / CSS
HTML基础详解(上)
Oct 16 HTML / CSS
CSS 一行代码实现头像与国旗的融合
Oct 24 HTML / CSS
HTML怎么设置下划线?html文字加下划线方法
Dec 06 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php foreach 参数强制类型转换的问题
2010/12/10 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
Javascript 刷新全集常用代码
2009/11/22 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
python根据url地址下载小文件的实例
2018/12/18 Python
python3正则模块re的使用方法详解
2020/02/11 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
浅析python实现动态规划背包问题
2020/12/31 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
new修饰符是起什么作用
2015/06/28 面试题
20年同学聚会邀请函
2014/02/04 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
企业员工集体活动方案
2014/08/17 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python
Python实现照片卡通化
2021/12/06 Python