selenium css(转)

如果button上有class属性的,如:

<button id="ext-eng=1026" class="x-right-button"...>

可以这样写:

css=button.x-right-button

.代表class

如果class里带的空格,用.来代替空格如:

<button class="x-btn-text module_picker_icon">...

可以这样写:

css=button.x-btn-text.module_picker_icon

如果想用别的属性值定位,用方括号【属性名=属性值】的方式,如:

<abbr>Abc<abbr/>

css=abbr[title="Abc"]

如果button上有id属性的,如:

<input id="ag_name" type="text"...>

可以这样写:

css=input#ag_name

或者直接写

css=#ag_name

#代表id

但是在实际应该中,如果有元素固定id的,可以直接用id locator,这样写:

id=ag_name

这通常是在Form里的input元素, 需要用户填写内容然后提交的部分,也是最简单的部分。

没有固定id的,通常是由javascript框架自动生成的id如,每次加载页面都会改变的,如:

<button id="ext-eng-1026" >,下回可能就是<button id="ext-eng-2047">

这种情况不能使用id属性来定位。

如果你想定位一个显示OK的Button,但页面上有几个Button,id是自动生成的,class是一样的,我又想用一个简单点的CSS locator的时候,

<button id="ext-eng-1026" class="x-right-button">OK</button>

<button id="ext-eng-1027" class="x-right-button">Cancel</button>

可以这样写:

css=button.x-right-button:contains("OK")

:contains是个Pseudo-class,用冒号开头,括号里是内容。

Pseudo-classes是CSS提供的伪类,用来访问页面上DOM tree之外的信息,还有Pseudo-elements 用来最精准的定位页面上的某一行文字,甚至某一行文字的第一个字母。我也是昨天头一回听说有这玩意儿,具体可以研究一下css3 selector文档的Chapter 6.6 Pseudo-classes 和 Chapter 7 Pseudo-elements

基本上用XPath能定位的元素,都能用CSS Selector定位到。

它两最相似的是这样写:

<table><tr><td><div><span>abcd</span><span>1234</span></div></td></tr></table>

xpath=//table/tr/td/div/span[1]

css=table>tr>td>div>span:nth-child(1)

*xpath没在页面上测试过。

一个非常好的blog,不看可惜了。

http://saucelabs.com/blog/index.php/2009/10/selenium-tip-of-the-week-start-improving-your-locators/

Direct child

A direct child in XPATH is defined by the use of a “/“, while on CSS, it’s defined using “>

Examples:


1

2

3

//div/a

css=div > a

Child or subchild

If an element could be inside another or one it’s childs, it’s defined in XPATH using “//” and in CSS just by a whitespace

Examples:


1

2

3

//div//a

css=div a

Id

An element’s id in XPATH is defined using: “[@id=‘example‘]” and in CSS using: “#

Examples:


1

2

3

//div[@id=‘example‘]//a

css=div#example a

Class

For class, things are pretty similar in XPATH: “[@class=‘example‘]” while in CSS it’s just “.

Examples:


1

2

3

//div[@class=‘example‘]//a

css=div.example a

Thats’ all for now, as you can see, the first rules a pretty simple, and you even make you locators shorter and cleaner.

综上所述,就是:

有固定id的用id selector,

没有固定id的用css selector。

Pseudo-selements :contains()很好用。

会了这几下子,基本上定位就不成问题了。

时间: 2024-08-07 05:40:06

selenium css(转)的相关文章

Selenium - CSS Selector

昨天我练习了用CSS(即层叠样式表Cascading Stylesheet) Selector来定位(locate)页面上的元素(Elements).Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath locator速度快,特别是在IE下面(IE没有自己的XPath 解析器(Parser)).有很多跟Selenium相关的Blog文章都有提到使用CSS Selector的技术.之前我不会CSS Sele

selenium css 定位的几种常用方法

#-*-coding:utf-8-*-from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Firefox() url = "https://www.baidu.com/"# url = "http://www.cnblogs.com/yoyoketang/&q

006 selenium css/jquery/返回对象

''' 时间:2018/12/04 功能:css/jquery/返回对象 目录: 一: xpath 1 id 2 class 3 其他 4 路径 5 子节点 6 条件 二: jquery 1 浏览器调试 2 代码登录 三: 返回对象 1 打印输出 四: 登录判断 1 方法一 2 方法二 五: 思考 ''' 一: xpath 1 id 2 class 3 其他 4 路径 5 子节点 6 条件 二: jquery 1 浏览器调试 2 代码登录 from selenium import webdriv

Selenium - Css Selector 使用方法

什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector可以下载火狐浏览器插件,FireFinder 或 FireBug和FirePath组合使用. 使用方法: 1. Css Selector支持ID.Class的定位 与HTML中CSS定位相同 定位ID:id = "navi" -> #navi 定位Class: class = "inner" -> .inner 多个Cla

selenium css定位方式

原文地址:https://www.cnblogs.com/woniu123/p/8358182.html

https://saucelabs.com/resources/articles/selenium-tips-css-selectors

Sauce Labs uses cookies to give you the best online experience. If you continue to use this site, you agree to the use of cookies. Please see our privacy policy for details. Learn more OK TYPE KEYWORD SOLUTIONS PLATFORMS PRICING RESOURCES SUPPORT & S

【Selenium 3+Java自动化(6)】-CSS定位语法

一.前言 本章节讲解一下CSS定位. CSS定位相对于XPath定位的优点是:css定位更快,语法更简洁. 这一篇css的定位方法,主要是对比上一篇的xpath来的,基本上xpath能完成的,css也可以做到.两篇对比学习,更容易理解. 二.CSS:属性定位 1.通过id属性定位,需要加上标识符"#",如:#kw: element = driver.findElement(By.cssSelector("#kw")); element.sendKeys("

Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链接等.比如在用户名输入框和密码输入框输入正确的用户名和密码,然后点击登录按钮进行登录.在Selenium自动化中,Selenium提供多种API来对HTML元素进行操作,对于每个HTML元素,需要一个可以标识它的标识符,在Selenium中称之为定位器,Selenium支持多种不同类型的定位器,有标

Selenium彩蛋篇-Css Selector使用方法

转:http://www.imdsx.cn/index.php/2017/07/27/css1/ 什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议大家安装火狐浏览器后,下载插件,FireFinder 或 FireBug和FirePath组合使用. Css Selector使用方法 1.Css Selector支持ID.Class的定位 与HTML中CSS定位相同 # 号表id 定位有id的标签方式更加