一.为什么使用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常用的定位方式介绍

  1. E代表的是标签。
  2. E>F:F也是代表的标签,称为子代元素,F是E的子代元素,说通俗一点F是E的儿子关系,F紧跟着E后面的第一个元素,直接的下一级。
  3. E F:隔着多层标签,称为后代元素。通俗称为祖宗辈,例如爷爷和孙子关系。
  4. E+F:匹配紧随E元素之后的同级元素F(只匹配第一个),称为毗邻元素选择器。通俗点解释E是大哥,后面有多个弟弟,只取它最近一个弟弟F。
  5. E ~ F:同级标签,称为同级元素选择器。通俗称为兄弟关系,例如哥哥和弟弟关系。
  6. E[att='val'] :E代表标签,att代表属性,val指属性的值。例如:span[class=’ui-tg-text’]
  7. E[att1='v1'][att2*='v2']:多属性选择器,针对一个标签有多个属性,做并且的关系同时满足条件。
  8. .info  class:点代表class。例如上述图中:.ui-tg-text
  9. #footer  id:#号代表id。例如上述图中:#operation
  10. 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定位的更多相关文章

  1. 【基础】selenium中元素定位的常用方法(三)

    一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单, ...

  2. selenium中js定位

    学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位 使用js定位的时候是用DOM树定位方式 eg: document.g ...

  3. 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素

    目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...

  4. 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解

    目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...

  5. 《手把手教你》系列技巧篇(十八)-java+ selenium自动化测试-元素定位大法之By css中卷(详细教程)

    1.简介 按计划今天宏哥继续讲解倚天剑-css的定位元素的方法:ID属性值定位.其他属性值定位和使用属性值的一部分定位(这个类似xpath的模糊定位). 2.常用定位方法(8种) (1)id(2)na ...

  6. selenium中定位iframe框

    这是使用谷歌看到的源码.想要往里面输入内容,需要使用js. 这个iframe没有id,不能通过id直接定位到.但可以通用TagName来定位到iframe. WebDriver中定位的代码如下: St ...

  7. 【Selenium】selenium中隐藏元素如何定位?

    前言 面试题:selenium 中隐藏元素如何定位?这个是很多面试官喜欢问的一个题,如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~很多面试官自己都搞不清楚 ...

  8. Python3.x:Selenium中的webdriver进行页面元素定位

    Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...

  9. 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

随机推荐

  1. 数据转换为json格式的方法

    数据转换为json格式: 如果一张表中存在主外键关系,模板自动生成的类是不可以转换成JSON格式的,此时需要重新写一个类,类前面需加[DataContract],字段前需加[DataMember],实 ...

  2. 怎样去除ul li a标签文字下的下划线

      这个主要是text-decoration属性,颜色的话就是普通的了 <style> ul li a{ text-decoration:none; } ul li a { color: ...

  3. js之规范代码写法

    一.避免多次定义var 例如:var a = 0; var b = 1; 尽量定义为:var a = 0,   b =1; 二.尽量在结尾使用分号(semicolon) 否则编辑器会提示:Unterm ...

  4. java练习题:输出100以内与7有关的数、百马百担、打分(去掉最高、最低分)、二分法查找数据

    1.输出100以内与7有关的数 注: 这些数分为三类:(1)7的倍数,(2)个位数字是7的数,(3)十位数字是7的数 int i=1; System.out.println("输出100以内 ...

  5. Android复习指南

    基础无外乎几部分:语言(C/C++或java),操作系统,TCP/IP,数据结构与算法,再加上你所熟悉的领域.这里面其实有很多东西,各大面试宝典都有列举. 在这只列举了Android客户端所需要的和我 ...

  6. [cocos2d-x]OPENGL ES支持的像素格式

    OPENGL ES最多支持32位颜色值. 支持的像素格式有以下几种: 客户端格式 GL格式 GL数据类型 字节数 RGBA8888 GL_RGBA GL_UNSIGNED_BYTE 4 RGB888 ...

  7. python练习题代码

    1.打印出相应规则的字母 zm='ABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> for i in range(0,len(zm)): if i==0:  print ...

  8. 如何编写android ANE

    1.编写AndroidAne.jar: a.编写SkyContext.java: import java.util.HashMap;import java.util.Map;import com.ad ...

  9. SqlServer索引及优化详解

    实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclustered index ...

  10. 什么是CPA, CPS, CPT?

    在互联网上或移动端进行产品推广时,经常听到很多术语,什么CPA,CPS,CPT等等.不知是怎么来的,今天网上搜一下术语,在这里做一下笔记. CPA(Cost Per Action) 每行动成本. CP ...