`

关于selenium的CSS

阅读更多

经过将近两年半自动化的经验(两年selenium相关经验)对于selenium对元素的定位,常用的几种ID,CLASS之类的没必要说了在这里,对于一些不规范的前端代码 我想我最喜欢用的事CSS定位。

优势1:一般情况下定位速度要比XPATH

优势2:语法要比XPATH更简洁更易懂

优势3:对于页面结构的变化对其影响并不像XPATH那么大

当然还有很多因素是我的个人喜好

下面列出一些常用的CSS定位的一些常用语法 这里不剧烈了有需要的可以给我留言我会一一解答

*

通用元素选择器,匹配任何元素

E

标签选择器,匹配所有使用E标签的元素

.info

class选择器,匹配所有class属性中包含info的元素

#footer

id选择器,匹配所有id属性等于footer的元素

E,F

多元素选择器,同时匹配所有E元素或F元素,EF之间用逗号分隔

E F

后代元素选择器,匹配所有属于E元素后代的F元素,EF之间用空格分隔

E > F

子元素选择器,匹配所有E元素的子元素F

E + F

毗邻元素选择器,匹配紧随E元素之后的同级元素F (只匹配第一个)

E ~ F

同级元素选择器,匹配所有在E元素之后的同级F元素

E[att='val']

属性att的值为valE元素 (区分大小写)

E[att^='val']

属性att的值以val开头的E元素 (区分大小写)

E[att$='val']

属性att的值以val结尾的E元素 (区分大小写)

E[att*='val']

属性att的值包含valE元素 (区分大小写)

E[att1='v1'][att2*='v2']

属性att1的值为v1att2的值包含v2 (区分大小写)

E:contains('xxxx')

内容中包含xxxxE元素

E:not(s)

匹配不符合当前选择器的任何元素

E:nth(n)

E:eq(n)

在其父元素中的E子元素集合中排在第n+1个的E元素 (第一个n=0)

E:first

在其父元素中的E子元素集合中排在第1个的E元素

E:last

在其父元素中的E子元素集合中排在最后1个的E元素

E:even

在其父元素中的E子元素集合中排在偶数位的E元素 (0,2,4…)

E:odd

在其父元素中的E子元素集合中排在奇数的E元素 (1,3,5…)

E:lt(n)

在其父元素中的E子元素集合中排在n位之前的E元素 (n=2,则匹配0,1)

E:gt(n)

在其父元素中的E子元素集合中排在n位之后的E元素 (n=2,在匹配3,4)

E:only-child

父元素的唯一一个子元素且标签为E

E:empty

不包含任何子元素的E元素,注意,文本节点也被看作子元素

  xpath css

标                       签  

//div 

div 

By id

//div[@id='eleid'] 

div#eleid 

By class

//div[@class='eleclass']
//div[contains(@class,'eleclass')]

div.eleclass 

By 属性

//div[@title='Move mouse here']

div[title=Move mouse here]
div[title^=Move]
div[title$=here]
div[title*=mouse]

定位子元素

//div[@id='eleid']/*
//div/h1 

div#eleid >*
div#eleid >h1

定位后代元素

//div[@id='eleid']//h1

div h1 

By index

//li[6]

li:nth(5)

By content

//a[contains(.,'Issue 1164')]

a:contains(Issue 1164)

根据子元素回溯定位父元素

//li[a[contains(.,'Issue 1244')]]
//*[./a[contains(.,'Issue 1244')]]

//ul[.//a[contains(.,'Issue 1244')]]

li{a:contains(Issue 1244)}
ul{a:contains(Issue 1244)}

根据邻近元素定位

//li[preceding-sibling::li[contains(.,'Issue 1244')]]
//ul[preceding-sibling::ul[.//a[contains(.,'Issue 1244')]]]

css=li:contains(Issue 1244) + li
css=ul{a:contains(Issue 1244)} ~ ul

以上可供参考 有些方法可能针对不同版本的selenium,有些不同或者有的会失效具体列子具体分析了

 

分享到:
评论

相关推荐

    selenium css selector 定位详解

    ### Selenium CSS Selector定位详解 #### 一、引言 在自动化测试领域,Selenium作为一款强大的工具被广泛应用于Web页面的交互操作与测试。而CSS选择器(CSS Selector)是Selenium进行页面元素定位的一种非常重要的...

    selenium深入CSS选择.ipynb

    如文件标题,内涵selenium库中关于css标签定位基本操作,是一个jupyter notebook的ipynb文件

    selenium-selenium-4.5.0.zip源码

    Selenium 是一个强大的开源自动化测试框架,用于网页应用。它支持多种编程语言,如 Java、Python、C#、Ruby 等,使测试工程师能够编写脚本来模拟用户在浏览器中的各种交互行为。Selenium 4.5.0 版本是该框架的一个...

    selenium-java-4.0.0-alpha-6_javaselenium_

    2. **selenium-devtools-4.0.0-alpha-6.jar**:这是一个与浏览器开发者工具相关的库,Selenium 使用这些工具来获取关于页面状态的详细信息,如 DOM 结构、CSS 属性等。 3. **selenium-firefox-xpi-driver-4.0.0-...

    Selenium_v2.5

    它提供了多种定位策略,如ID、name、CSS选择器、XPath等,使测试脚本能够精确地找到页面上的元素并进行操作,如点击、输入文本、选择下拉选项等。此外,这个版本还优化了对动态加载页面的处理,使得测试脚本能更有效...

    Selenium-Python中文手册

    - **CSS选择器与XPath**: 使用`find_elements_by_css_selector`和`find_elements_by_xpath`查找元素。 - **处理警告与弹框**: `switch_to_alert()`处理JavaScript警告、确认框和输入框。 - **处理框架与窗口**: `...

    selenium及依赖jar包(java)

    9. **cssparser-0.9.14.jar**:CSS Parser库用于解析和操作CSS样式表,Selenium可能用它来定位网页元素,根据CSS选择器进行元素查找。 10. **cglib-nodep-2.1_3.jar**:CGLIB是一个代码生成库,用于扩展Java类和...

    Selenium初学者指南Selenium私房菜selenium2python.7z

    理解元素定位方法,如CSS选择器、XPath等,是Selenium测试的关键技能。同时,学会处理动态内容、异步加载和JavaScript事件也是必不可少的。 总的来说,通过这套学习资源,你可以逐步掌握Selenium自动化测试的基本...

    selenium.jar selenium资源包

    **元素定位策略**:Selenium提供了多种方式来定位页面上的元素,如ID、Name、XPath、CSS选择器等。这些定位策略使得我们可以精确地找到页面上的任何元素进行操作。 **断言和异常处理**:在编写测试脚本时,断言用来...

    用selenium爬猎聘职位列表_猎聘_爬虫_python_selenium_

    本案例主要探讨如何使用Python的Selenium库来爬取猎聘网站的职位列表,这对于数据分析、人才招聘研究或个人求职者了解市场动态都有很大帮助。由于常规的HTTP请求库如requests无法处理动态加载的内容,Selenium成为了...

    selenium+python

    - **元素定位**:Selenium提供了多种定位策略,如ID、CSS选择器、XPath等,帮助我们找到页面上的特定元素。 - **用户交互**:模拟用户点击、填写表单、选择选项等操作,如`click()`、`send_keys()`。 - **等待...

    selenium实验报告.docx

    **实验报告:使用Selenium完成WEB程序的自动化测试** **一、实验背景与目标** Selenium是一款强大的Web应用程序自动化测试工具,它支持多种浏览器和编程语言,如Java、Python、C#等。本次实验旨在帮助学生掌握...

    关于selenium的课堂学习内容,既简单又全面

    在这个“关于selenium的课堂学习内容”中,我们将深入探讨Selenium的基本概念、安装、配置以及如何使用Python进行Web自动化测试。 首先,Selenium的核心组件是WebDriver,它允许程序员模拟用户与浏览器的交互,如...

    selenium-java.jar

    7. **元素定位策略**:Selenium 提供多种方法来定位页面元素,如ID、name、class name、CSS选择器等,便于对网页元素进行操作。 8. **断言和异常处理**:在编写测试脚本时,可以使用Selenium提供的断言方法来验证...

    Selenium官方中文文档PDF.zip

    - **元素定位**: Selenium 提供了多种方法来定位页面上的元素,如 ID、Name、XPath、CSS选择器等。了解这些定位方法对于编写测试脚本至关重要。 - **命令和函数**: 文档会详细解释Selenium的各种命令,如 `click()`...

    selenium源码.zip

    3. 查找元素:通过CSS选择器、XPath或其他方法定位页面上的元素。 4. 执行操作:如点击元素、输入文本、选择下拉项等。 5. 验证结果:检查页面状态、元素属性或返回值,确保测试目标达成。 6. 关闭浏览器:测试结束...

    selenium-doc, selenium 中文文档.zip

    4. **选择器和定位策略**:Selenium 提供多种选择器来定位页面元素,如 ID、Name、XPath、CSS 选择器等。理解这些定位策略是编写有效测试脚本的基础。 5. **断言和验证**:在编写测试时,断言和验证是非常关键的...

    selenium-java-3.11.0.zip

    4. **LICENSE** 和 **NOTICE**:这些文件提供了关于Selenium的许可信息和版权声明,详细说明了你可以如何合法地使用这个软件。 5. **libs**:这个目录可能包含了Selenium依赖的其他库文件,它们是Selenium正常工作...

    selenium学习资料

    selenium学习资料:[优]Selenium CSS Selector定位详解.pdf,Selenium2 Java自动化测试实战9_3.pdf,selenium2 python自动化测试实战.pdf,Selenium2+Python自动化测试实战修订.pdf,Selenium入门教程.pdf等

    Selenium各种案例

    【Selenium 各种案例】 Selenium 是一个广泛使用的自动化测试工具,主要用于Web应用程序的测试。它支持多种编程语言,包括Python,使测试脚本的编写变得简单易行。在这个" Selenium各种案例 "中,我们将深入探讨...

Global site tag (gtag.js) - Google Analytics