input里面只有name属性 可以用id定位么_Selenium元素定位 提高篇 CSS定位元素
CSS(Casading Style Sheets)是一种用于渲染HTML或者XML文档的语言,CSS利用其选择器可以将样式属性绑定到文档中的指定元素。理论上来说无论一个元素定位多复杂都能够定位到元素。
不同的浏览器XPath引擎不同甚至没有自己的XPath引擎,导致了XPath定位速度较慢,所以推荐使用CSS来定位。
很多情况下CSS无法使用时,XPath非常容易就可以做到,其次是因为XPath比CSS更加简单且容易上手。
下面介绍CSS的几种定位方法:
1、CSS元素选择器
input 选择input元素
p 选择p元素
2、CSS ID与类选择器ID 选择器以 "#"来定义
class类 选择器以一个 "." 点号来定义
示例:搜狗搜索页面元素举例
#query 表示id为query的元素
.query 表示class为query的元素
3、CSS 属性选择器
属性选择器可以根据元素的属性级属性值来选择元素。
示例:
[title] 将title属性放到中括号里,表示选择具有该属性的元素
[title=value] title属性等于value的元素
[title~=value] title属性包含value单词的元素,注意是单词
[title|=value] title属性以value单词开头的元素,注意是单词
[title^=value] title属性以value开头的元素
[title$=value] title属性以value结尾的元素
[title*=value] title属性包含value开头的元素
input[title*=value] 表示input元素下有title属性包含value的元素
input[type='text'][name='query']#query input元素有type='test'、name='query'、id='query'的元素
4、CSS 后代选择器
后代选择器又称为包含选择器。后代选择器可以选择作为某元素后代的元素。
注意: 后代元素不一定是儿子,也有可能是孙子。
示例: 搜狗搜索页面元素
span input 选择span下的input元素
div.content span.enter-input input#stb 选择div.content下span.enter-input下的input id=stb的元素
5、CSS 子元素选择器
与后代选择器相比,子元素选择器只能选择作为某元素子元素的元素。
如果不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,就使用子元素选择器。子元素选择器只能选择儿子。
示例: 搜狗搜索页面元素div>input 只作为 div 元素子元素的 input元素div>form>span>input div下的子元素form下的子元素span下的子元素inputdiv>form[name='sf']>span>input#query div下的子元素form[name='sf']下的子元素span下的子元素input#querydiv#content form>span>input#query div#content下的子元素form下的子元素span下的子元素input#query
6、CSS 相邻兄弟选择器
相邻兄弟选择器可选择紧接在另一个元素后的元素,而二者有相同父元素。
示例:搜狗搜索页面元素示例input+input input后出现的input的元素div#content form>span+input div#content下的form元素下的子元素span同级相邻的第一个弟弟元素
7、CSS 伪类
CSS伪类用于向某些选择器添加特殊的效果。Selenium中元素CSS定位用的伪类只有:first-child(元素的第一个子元素),其他的可靠性非常低或者不能使用。
示例:搜狗搜索页面元素示例input:first-child 所有第一个input元素 from >input:first-child 所有from子元素中的第一个input元素from span:first-child input:first-child from下的第一个span元素下的第一个input元素
8、CSS 选择器运用示例
9、CSS 选择器参考手册
参考w3school的选择器参考手册为样本,
原文参考链接: https://www.w3school.com.cn/cssref/css_selectors.asp
input里面只有name属性 可以用id定位么_Selenium元素定位 提高篇 CSS定位元素相关推荐
- JavaScript控制input输入框的required属性值
JavaScript控制input输入框的required属性值 当我们在勾选上一个复选框之后,希望该选项的输入框成为必填项时,那么将会用到required这个属性 在HTML中,required为属 ...
- 【input 标签的 type 属性详解】
input 标签的 type 属性详解 1. input 输入标签的 type 属性 1.1 input 标签的 type类型 属性的常用属性值 ⑴ 单行文本框: type="text&qu ...
- input标签加disabled属性后无法获得其value值
在做网站时,由于某些信息不能修改,故使用了input标签的disabled属性, 但是在提交数据后却发现显示为空了.后来一查才知道input设置为disabled值时会有下面的限制: 1.不能接收焦点 ...
- 安卓微信浏览器无法支持input multiple的h5属性多图上传
H5手机端 实现多图上传的功能 但是实际上 安卓手机上只能义词上传一张图片(测试的机型:小米)代码如下: 在微信开发中遇见一个问题 应用上传插件安卓手机无法进行多张上传 当时现象: 微信浏览器选择安卓 ...
- html中input标签中type属性小总(包含html5新增表单属性)
前言 HTML5新增了许多属性和方法,其中一些就有input标签中 type属性. 有关于input中type的全部可取值如下 1.button 2.text 3.time(会呈现表的形状) 4. ...
- 两步教你用Vue3+TS实现input组件的v-model属性
实现自定义input组件的v-model属性 前言 第一步 第二步 效果 前言 使用过一些ui框架的同学应该都知道input里面的值有一个绑定的v-model属性,这篇文章教大家如何给自己定义的inp ...
- input框添加disabled属性
给input框添加disabled属性有以下三种方法 方法一:$("#ids").combobox({ disabled: true }) 方法二:$("#ids&quo ...
- vue 动态控制input输入框的disabled属性
最近项目上提出一个经常遇到的需求,点击新增时input可输入,点击编辑时input置灰.写下过程,希望能帮助到大家. 1.首先在input上添加disabled属性 2.data中定义isDisabl ...
- input标签的value属性详解
请结合这篇文章一起看 input 标签的 value 属性的作用是由 input 标签的 type 属性的值决定的 当 type 的取值为 button.reset.submit 中的其中一个时,此时 ...
最新文章
- 混合云存储开启企业上云新路径--阿里云混合云备份容灾方案发布
- 在悬崖下得到鸿蒙塔,第一次夜宿在悬崖峭壁上:垂直高度356米,峡谷深渊就在边上...
- MTP 多媒体传输协议
- java 获取进程_java获取指定进程的stat
- 单选按钮设置为被选中状态_为什么要设置错误的按钮状态
- mysql odbc.ini_关于unixodbc中odbc.ini和odbcinst.ini的介绍
- 音视频开发(24)---H.264视频编码基本知识
- linux运行getch吗,怎么样在linux下,实现getch函数功能
- o2o模式都有哪些应用场景?
- 死锁——哲学家就餐问题
- rpc服务器不可用自动重启,出现RPC服务器不可用的解决方法
- [1125]AES加密报错:Illegal key size or default parameters
- 轻松认识HTTP协议的概念和工作原理
- gammatone 滤波器详解及其MATLAB代码实现
- 身份证号码验证(转)
- 莽撞小子终到迟暮中年 弗朗西斯择队目标转换(转)
- appium命令版安装
- Android 软件升级
- node 介绍、安装、升级(node npm)
- 信息安全之路入坑指南
热门文章
- apache开源项目--Apache Commons Imaging
- Javascript 链式运动框架——逐行分析代码,让你轻松了解运动的原理
- Nhibernate3.3.3 GA使用初探
- (转)Facebook如何提高软件质量?
- Nhibernate代码自动生成工具[转]
- EnterpriseLibrary数据访问(3)加密连接信息
- 手把手教你做用户画像:3种标签类型、8大系统模块
- 未来十年,人人有望在家远程办公?
- 帮你防沉迷、为你打call、解救路痴,一文看懂Google I/O 2018
- C++矩阵库 Eigen 快速入门