Selenium 中 cssSelector定位
一.为什么使用cssSelector定位元素?
目前针对一些常规定位方式有:By.id、By.name、By.LinkTest(针对<a>标签)、By.ClassName
针对不太好定位的,比如:没有id、name、class的定位方式,或者说id、name、class的value值显示重复,不太方便一下写出定位方式,这样可以考虑下其它定位方式。以下主要介绍cssSelector如何解决id、name、class的value值显示重复的定位方式。
二.基础语法
|
E |
标签选择器,匹配所有使用E标签的元素 |
|
E F |
后代元素选择器,匹配所有属于E元素后代的F元素,E和 F之间用空格分隔 |
|
E > F |
子元素选择器,匹配所有E元素的子元素F |
|
E + F |
毗邻元素选择器,匹配紧随E元素之后的同级元素F (只 匹配第一个) |
|
E ~ F |
同级元素选择器,匹配所有在E元素之后的同级F元素 |
|
.info class |
选择器,匹配所有class属性中包含info的元素 |
|
#footer id |
选择器,匹配所有id属性等于footer的元素 |
|
E[att='val'] |
属性att的值为val的E元素 (区分大小写) |
|
E[att^='val'] |
属性att的值以val开头的E元素 (区分大小写) |
|
E[att$='val'] |
属性att的值以val结尾的E元素 (区分大小写) |
|
E[att*='val'] |
属性att的值包含val的E元素 (区分大小写) |
|
E[att1='v1'][att2*='v2'] |
属性att1的值为v1,att2的值包含v2 (区分大小写) |
|
E:contains('xxxx') |
内容包含xxxx的E元素(已经废弃的伪类,不再支持) |
|
:nth-of-type和:nth-child |
以"type"来区分的,也就是说 ele:nth-of-type(n)是指其父元素下第n个ele元素, ele:nth-child(n)是指其父元素下第n个元素且这个元素为ele,若不是,则选择失败。 |
案例图:

三.css常用的定位方式介绍
- E代表的是标签。
- E>F:F也是代表的标签,称为子代元素,F是E的子代元素,说通俗一点F是E的儿子关系,F紧跟着E后面的第一个元素,直接的下一级。
- E F:隔着多层标签,称为后代元素。通俗称为祖宗辈,例如爷爷和孙子关系。
- E+F:匹配紧随E元素之后的同级元素F(只匹配第一个),称为毗邻元素选择器。通俗点解释E是大哥,后面有多个弟弟,只取它最近一个弟弟F。
- E ~ F:同级标签,称为同级元素选择器。通俗称为兄弟关系,例如哥哥和弟弟关系。
- E[att='val'] :E代表标签,att代表属性,val指属性的值。例如:span[class=’ui-tg-text’]
- E[att1='v1'][att2*='v2']:多属性选择器,针对一个标签有多个属性,做并且的关系同时满足条件。
- .info class:点代表class。例如上述图中:.ui-tg-text
- #footer id:#号代表id。例如上述图中:#operation
- ele:nth-of-type(n) 是指其父元素下第n个ele元素。 例如:同一级下有10个div标签,那么只需要定位其中6个div,这时代码可以这样写:div:nth-of-type(6),括号中的数据代表索引查找第n个元素。
例如:
drvier.findElement(By.cssSelector("#operation a span~span")).click();
Selenium 中 cssSelector定位的更多相关文章
- 【基础】selenium中元素定位的常用方法(三)
一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单, ...
- selenium中js定位
学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位 使用js定位的时候是用DOM树定位方式 eg: document.g ...
- 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素
目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...
- 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解
目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...
- 《手把手教你》系列技巧篇(十八)-java+ selenium自动化测试-元素定位大法之By css中卷(详细教程)
1.简介 按计划今天宏哥继续讲解倚天剑-css的定位元素的方法:ID属性值定位.其他属性值定位和使用属性值的一部分定位(这个类似xpath的模糊定位). 2.常用定位方法(8种) (1)id(2)na ...
- selenium中定位iframe框
这是使用谷歌看到的源码.想要往里面输入内容,需要使用js. 这个iframe没有id,不能通过id直接定位到.但可以通用TagName来定位到iframe. WebDriver中定位的代码如下: St ...
- 【Selenium】selenium中隐藏元素如何定位?
前言 面试题:selenium 中隐藏元素如何定位?这个是很多面试官喜欢问的一个题,如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~很多面试官自己都搞不清楚 ...
- Python3.x:Selenium中的webdriver进行页面元素定位
Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...
- 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
随机推荐
- Codeforces Round #384 (Div. 2)A,B,C,D
A. Vladik and flights time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- JavaScript的一点自我总结
学习前端不知不觉都两个月了,从零基础到现在,网页布局没多大问题,就是JS学的很差,有一段时间都怀疑自己是不是选错了.但自我调节后,心态发生了一些变化后,学习也没那么痛苦了.虽然做不到看代码像看初恋那样 ...
- PHP保留两位小数的几种方法
$num = 10.4567; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2); //10.46 //第二种:利用sprintf格式化字符串 $format_ ...
- View绘制--onMeasure() 、onLayout()
绘制需要经过多次 measure() layout() 过程, measure:测量,不可被子类继承,调用onMeasure()方法 onMeasure():测量,测量结束后每一个View都保存了自己 ...
- selenium eclipse环境搭建
1.python 3.5下载及安装 2.setuptools 与pip 下载地址是:http://pypi.Python.org/pypi/setuptools http://pypi.Python. ...
- 解决在国内更新android sdk时连不到服务器的问题
修改hosts文件 Windows下:打开C:\Windows\System32\drivers\etc\hosts Linux下:vi /etc/hosts 在文件尾加入如下两行: 74.125.2 ...
- class && struct
http://blog.csdn.net/yuliu0552/article/details/6717915 struct可以包含成员函数,可以继承,可以实现多态. struct为数据结构,class ...
- display 和 visibility 的区别
设置控件隐藏 1.display:none 不为元素保留位置 2.visibility:hidden 占位置,是对象在网页上看不到,所占空间没有变化
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- Servlet路径跳转2--在servlet当中,跳转到某网页时的路径写法
课程1-13 http://www.imooc.com/video/5554 Servlet路径跳转: 绝对路径:放在任何地方都对的路径 相对路径:相对于当前资源的路径 两种方法:请求重定向,服务 ...