前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用CSS选择器进行元素定位

使用CSS选择器进行元素定位

作者头像
苦叶子
发布2018-04-17 15:31:07
3K0
发布2018-04-17 15:31:07
举报
文章被收录于专栏:开源优测开源优测
在selenium webdriver中,支持使用CSS选择器来进行元素定位,事实在真的投入工作,大量编辑用例和元素定位的时候,使用css 和 xpath才是经常需要用到的。

之前有专门讲过使用xpath对元素定位的使用,下面要介绍css选择器来进行元素定位。

【参见W3C官网说明】

http://www.w3school.com.cn/cssref/css_selectors.asp

先看看css选择器定位的webdriver函数:

代码语言:javascript
复制
def find_elements_by_css_selector(self, css_selector):        """        Finds elements by css selector.         :Args:         - css_selector: The css selector to use when finding elements.        :Usage:            driver.find_elements_by_css_selector('.foo')        """        return self.find_elements(by=By.CSS_SELECTOR, value=css_selector)

常见语法

CSS选择器用于选择你想要的元素的样式的模式。

"CSS"列表示在CSS版本的属性定义(CSS1,CSS2,或对CSS3)。

选择器

示例

示例说明

CSS

.class

.intro

选择所有class="intro"的元素

1

#id

#firstname

选择所有id="firstname"的元素

1

*

*

选择所有元素

2

element

p

选择所有<p>元素

1

element,element

div,p

选择所有<div>元素和<p>元素

1

element element

div p

选择<div>元素内的所有<p>元素

1

element>element

div>p

选择所有父级是 <div> 元素的 <p> 元素

2

element element

div p

选择所有紧接着<div>元素之后的<p>元素

2

[attribute]

[target]

选择所有带有target属性元素

2

[attribute=value]

[target=-blank]

选择所有使用target="-blank"的元素

2

[attribute~=value]

[title~=flower]

选择标题属性包含单词"flower"的所有元素

2

[attribute|=language]

[lang|=en]

选择一个lang属性的起始值="EN"的所有元素

2

element1~element2

p~ul

选择p元素之后同级的每一个ul元素

3

[attribute^=value]

a[src^="https"]

选择每一个src属性的值以"https"开头的元素

3

[attribute$=value]

a[src$=".pdf"]

选择每一个src属性的值以".pdf"结尾的元素

3

[attribute*=value]

a[src*="44lan"]

选择每一个src属性的值包含子字符串"44lan"的元素

3

:first-of-type

p:first-of-type

选择每个p元素是其父级的第一个p元素

3

:last-of-type

p:last-of-type

选择每个p元素是其父级的最后一个p元素

3

:only-of-type

p:only-of-type

选择每个p元素是其父级的唯一p元素

3

:only-child

p:only-child

选择每个p元素是其父级的唯一子元素

3

:nth-child(n)

p:nth-child(2)

选择每个p元素是其父级的第二个子元素

3

:nth-last-child(n)

p:nth-last-child(2)

选择每个p元素的是其父级的第二个子元素,从最后一个子项计数

3

:nth-of-type(n)

p:nth-of-type(2)

选择每个p元素是其父级的第二个p元素

3

:nth-last-of-type(n)

p:nth-last-of-type(2)

选择每个p元素的是其父级的第二个p元素,从最后一个子项计数

3

:last-child

p:last-child

选择每个p元素是其父级的最后一个子级。

3

:root

:root

选择文档的根元素

3

:empty

p:empty

选择每个没有任何子级的p元素(包括文本节点)

3

:target

#news:target

选择当前活动的#news元素(包含该锚名称的点击的URL)

3

:enabled

input:enabled

选择每一个已启用的输入元素

3

:disabled

input:disabled

选择每一个禁用的输入元素

3

:checked

input:checked

选择每个选中的输入元素

3

:not(selector)

:not(p)

选择每个并非p元素的元素

3

::selection

::selection

匹配元素中被用户选中或处于高亮状态的部分

3

:out-of-range

:out-of-range

匹配值在指定区间之外的input元素

3

:in-range

:in-range

匹配值在指定区间之内的input元素

3

:read-write

:read-write

用于匹配可读及可写的元素

3

:read-only

:read-only

用于匹配设置 "readonly"(只读) 属性的元素

3

:optional

:optional

用于匹配可选的输入元素

3

:required

:required

用于匹配设置了 "required" 属性的元素

3

:valid

:valid

用于匹配输入值为合法的元素

3

:invalid

:invalid

用于匹配输入值为非法的元素

3

作者: Ray 博客地址:http://www.cnblogs.com/tsbc/ 声明:本文已获作者授权转载,著作权归作者所有。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档