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定位元素相关推荐

  1. JavaScript控制input输入框的required属性值

    JavaScript控制input输入框的required属性值 当我们在勾选上一个复选框之后,希望该选项的输入框成为必填项时,那么将会用到required这个属性 在HTML中,required为属 ...

  2. 【input 标签的 type 属性详解】

    input 标签的 type 属性详解 1. input 输入标签的 type 属性 1.1 input 标签的 type类型 属性的常用属性值 ⑴ 单行文本框: type="text&qu ...

  3. input标签加disabled属性后无法获得其value值

    在做网站时,由于某些信息不能修改,故使用了input标签的disabled属性, 但是在提交数据后却发现显示为空了.后来一查才知道input设置为disabled值时会有下面的限制: 1.不能接收焦点 ...

  4. 安卓微信浏览器无法支持input multiple的h5属性多图上传

    H5手机端 实现多图上传的功能 但是实际上 安卓手机上只能义词上传一张图片(测试的机型:小米)代码如下: 在微信开发中遇见一个问题 应用上传插件安卓手机无法进行多张上传 当时现象: 微信浏览器选择安卓 ...

  5. html中input标签中type属性小总(包含html5新增表单属性)

    前言   HTML5新增了许多属性和方法,其中一些就有input标签中 type属性. 有关于input中type的全部可取值如下 1.button 2.text 3.time(会呈现表的形状) 4. ...

  6. 两步教你用Vue3+TS实现input组件的v-model属性

    实现自定义input组件的v-model属性 前言 第一步 第二步 效果 前言 使用过一些ui框架的同学应该都知道input里面的值有一个绑定的v-model属性,这篇文章教大家如何给自己定义的inp ...

  7. input框添加disabled属性

    给input框添加disabled属性有以下三种方法 方法一:$("#ids").combobox({ disabled: true }) 方法二:$("#ids&quo ...

  8. vue 动态控制input输入框的disabled属性

    最近项目上提出一个经常遇到的需求,点击新增时input可输入,点击编辑时input置灰.写下过程,希望能帮助到大家. 1.首先在input上添加disabled属性 2.data中定义isDisabl ...

  9. input标签的value属性详解

    请结合这篇文章一起看 input 标签的 value 属性的作用是由 input 标签的 type 属性的值决定的 当 type 的取值为 button.reset.submit 中的其中一个时,此时 ...

最新文章

  1. 混合云存储开启企业上云新路径--阿里云混合云备份容灾方案发布
  2. 在悬崖下得到鸿蒙塔,第一次夜宿在悬崖峭壁上:垂直高度356米,峡谷深渊就在边上...
  3. MTP 多媒体传输协议
  4. java 获取进程_java获取指定进程的stat
  5. 单选按钮设置为被选中状态_为什么要设置错误的按钮状态
  6. mysql odbc.ini_关于unixodbc中odbc.ini和odbcinst.ini的介绍
  7. 音视频开发(24)---H.264视频编码基本知识
  8. linux运行getch吗,怎么样在linux下,实现getch函数功能
  9. o2o模式都有哪些应用场景?
  10. 死锁——哲学家就餐问题
  11. rpc服务器不可用自动重启,出现RPC服务器不可用的解决方法
  12. [1125]AES加密报错:Illegal key size or default parameters
  13. 轻松认识HTTP协议的概念和工作原理
  14. gammatone 滤波器详解及其MATLAB代码实现
  15. 身份证号码验证(转)
  16. 莽撞小子终到迟暮中年 弗朗西斯择队目标转换(转)
  17. appium命令版安装
  18. Android 软件升级
  19. node 介绍、安装、升级(node npm)
  20. 信息安全之路入坑指南

热门文章

  1. apache开源项目--Apache Commons Imaging
  2. Javascript 链式运动框架——逐行分析代码,让你轻松了解运动的原理
  3. Nhibernate3.3.3 GA使用初探
  4. (转)Facebook如何提高软件质量?
  5. Nhibernate代码自动生成工具[转]
  6. EnterpriseLibrary数据访问(3)加密连接信息
  7. 手把手教你做用户画像:3种标签类型、8大系统模块
  8. 未来十年,人人有望在家远程办公?
  9. 帮你防沉迷、为你打call、解救路痴,一文看懂Google I/O 2018
  10. C++矩阵库 Eigen 快速入门