使用CSS选择器定位页面元素
摘录:http://blog.csdn.net/defectfinder/article/details/51734690
CSS选择器也是一个非常好用的定位元素的方法,甚至比Xpath强大。在自动化里我们用CSS选择器来定位页面元素一定要牢记一个准则:唯一定位,通常使用CSS选择器修改样式时会尽量多的选择元素,但是,在自动化里,必须要唯一定位到元素,否则自动化很可能因为找不到页面元素而失败。CSS选择器有很多,像标签选择器、类选择器、ID选择器、关系选择器、伪类选择器、分组选择器等等,但是只需要掌握常用的几种就可以满足定位元素的需求。
以下述HTML为例,总结下CSS选择器的用法:
<div id="menu" class="menu" title="menu">
<ul>
<li id="first" class="catagory book">
<a id="book"></a>
</li>
<li id="second" class="catagory food">
<a id="food"></a>
</li>
<li>
<a id="clothes"></a>
</li>
<li title="submenu">
<a id="furniture"></a>
</li>
</ul>
<a href="....">Welcome to Our Store</a>
</div>
1. 标签选择器
使用HTML标签来选择元素,例如:
driver.findElement(By.cssSelector("li")); //将选择所有li元素
driver.findElement(By.cssSelector("a")); //将选择所有a元素
2. 类选择器
使用类名来选择元素,使用方法:.class, 例如:
driver.findElement(By.cssSelector("div.menu")); //将选择class为menu的div元素driver.findElement(By.cssSelector(".catagory")); //将选择id为first的元素和id为second的元素,因为这两个元素的class里都含有catagory
3. ID选择器
使用ID来选择元素,使用方法:#id,例如:
driver.findElement(By.cssSelector("a#clothes")); //将选择id为clothes的a元素
也可以写成:
driver.findElement(By.cssSelector("#clothes")); //因为id是唯一的所以还是会选择id为clothes的a元素
3. 关系选择器
a.div,p 作用:选择所有div元素和p元素
b.div>p 作用:选择div的直接子元素中的所有p元素
c. div p 作用:选择div的后代元素中的所有p元素
4. 属性选择器
a. [title] 作用:选择所有具有title属性的元素
b. [title='menu'] 作用:选择所有title属性值等于'menu'的元素
c. [title~='menu'] 作用:选择所有title属性值包含menu的元素,注意:menu必须是一个word,
且有空格与其他单词分开
d. [title*='menu'] 作用:选择所有title属性值包含menu的元素,注意:此时menu为substring,而不是word
e. [title|='menu'] 作用:选择所有title属性值以menu开头或者等于menu的元素
f. [title^='menu'] 作用:选择所有title属性值以menu开头的元素
g. [title$='menu'] 作用:选择所有title属性值以menu结尾的元素
h. div[title='menu'] 作用: 选择所有title属性值等于menu的div元素
4. 通用选择器
方法:*
例如: div ul *; //选择div ul 下的所有子元素,包括li和a元素
5. 伪类选择器
伪类选择器很多,只总结下用过的:nth-child(n)
例如:p:nth-child(2) 作用:选择作为第二孩子的p元素
使用CSS选择器定位页面元素的更多相关文章
- web自动化测试---css方式定位页面元素
css方式定位的方法也有很多,相较于xpath更灵活一点,下面就介绍下使用方法(以百度输入框为例) 1.通过tag来定位,可以写成如下: driver.find_element_by_css_sele ...
- 『心善渊』Selenium3.0基础 — 8、使用CSS选择器定位元素
目录 1.CSS选择器介绍 2.CSS选择器定位语法 3.Selenium中使用CSS选择器定位元素 (1)通过属性定位元素 (2)通过标签定位元素 (3)通过层级关系定位元素 (4)通过索引定位元素 ...
- 使用 jQuery 选择器获取页面元素后,利用 jQuery 对象的 css() 方法设置其样式。
查看本章节 查看作业目录 需求说明: 使用 jQuery 选择器获取页面元素后,利用 jQuery 对象的 css() 方法设置其样式. 要求如下: 点击页面的"更改样式"按钮后, ...
- 使用 jQuery 选择器获取页面元素,然后利用 jQuery 对象的 css() 方法设置其 display 样式属性,从而实现显示和隐藏效果。
查看本章节 查看作业目录 需求说明: 使用 jQuery 选择器获取页面元素,然后利用 jQuery 对象的 css() 方法设置其 display 样式属性,从而实现显示和隐藏效果. 具体要求如下: ...
- 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式
查看本章节 查看作业目录 需求说明: 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式 ...
- CSS选择器定位的使用
CSS 可以比较灵活选择控件的任意属性,一般情况下定位速度要比XPath 快,但对于初学者来说比较难以学习使用,下面我们就详细的介绍CSS 的语法与使用.一.CSS 选择器的常见语法: 例如下面一段代 ...
- 『心善渊』Selenium3.0基础 — 10、使用Seleniun定位页面元素归纳总结(超详细)
目录 1.Selenium中8种基本元素定位方式 (1)单数形式 (2)复数形式 2.By类定位的8种定位方式 (1)单数形式 (2)复数形式 3.XPath定位总结 (1)基础定位语法 (2)属性定 ...
- 定位页面元素之xpath详解以及定位不到测试元素的常见问题
一.定位元素的方法 id:首选的识别属性,W3C标准推荐为页面每一个元素设置一个独一无二的ID属性, 如果没有且很难找到唯一属性,解决方法:(1)找开发把id或者name加上.如果不行,解决思路可以是 ...
- selenium中CSS选择器定位
selenium元素定位,CSS选择器定位效率会高很多. CSS选择器用于选择你想要的元素的样式的模式.表格摘自“菜鸟教程”,具体用法可去查阅 选择器 示例 示例说明 CSS .class .intr ...
随机推荐
- pytorch1.0 用torch script导出模型
python的易上手和pytorch的动态图特性,使得pytorch在学术研究中越来越受欢迎,但在生产环境,碍于python的GIL等特性,可能达不到高并发.低延迟的要求,存在需要用c++接口的情况. ...
- 20165325 2017-2018-2 《Java程序设计》 第八周学习总结
一.教材学习笔记 ch12 1.程序是一段静态的代码,进程是程序的一次动态执行过程 2.线程比进程还小,一个进程的进行期间可以产生多个线程. 3.Java内置对多线程的支持.我们的计算机在任何给定说的 ...
- SpringCloud Zuul(路由网关)
⒈Zuul是什么? Zuul包含了两个最主要的功能,对请求的路由和过滤.其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.过滤器功能则负责对请求的处理过程进行干预,是实 ...
- Deep Learning Tutorial - Multilayer perceptron
Multilayer perceptron:多层感知器 本节实现两层网络(一个隐层)作为分类器实现手写数字分类.引入的内容:激活函数(双曲正切.L1和L2正则化).Theano的共享变量.grad.f ...
- 1.Spring Boot入门及其jar包依赖模型分析
Spring Boot介绍 Spring Boot是由Pivotal团队提供的新框架,其设计目的是简化Spring应用的搭建以及开发过程.其目标是: 为所有Spring开发提供一个从根本上更快,且方便 ...
- 3.2. 使用 CPUFREQ 调节器【转】
转自:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/6/html/power_management_gu ...
- thyemleaf:禁用JS缓存(原创)
在开发时经常需要调整JS,但是调整后由于页面缓存的原因,看不到实时效果. 开发环境:springboot+thymeleaf 1.配置文件多模式 2.获得当前的激活的模式和随机数 import org ...
- 【原创】运维基础之OpenResty
openresty 1.15.8.1 官方:https://openresty.org/en/ 一 简介 OpenResty® is a dynamic web platform based on N ...
- 深度解析SpringMvc实现原理手写SpringMvc框架
http://www.toutiao.com/a6340568603607171329/?tt_from=mobile_qq&utm_campaign=client_share&app ...
- Linux学习之CentOS(一)--CentOS6.4环境搭建
Linux学习之CentOS(一)--CentOS6.4环境搭建http://www.cnblogs.com/xiaoluo501395377/archive/2013/03/31/CentOs.ht ...