博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium中CSS选择器定位
阅读量:5104 次
发布时间:2019-06-13

本文共 2471 字,大约阅读时间需要 8 分钟。

selenium元素定位,CSS选择器定位效率会高很多。

CSS选择器用于选择你想要的元素的样式的模式。表格摘自“菜鸟教程”,具体用法可去查阅

选择器 示例 示例说明 CSS
.intro 选择所有class="intro"的元素 1
#firstname 选择所有id="firstname"的元素 1
* 选择所有元素 2
p 选择所有<p>元素 1
div,p 选择所有<div>元素和<p>元素 1
div p 选择<div>元素内的所有<p>元素 1
div>p 选择所有父级是 <div> 元素的 <p> 元素 2
div+p 选择所有紧接着<div>元素之后的<p>元素 2
[target] 选择所有带有target属性元素 2
[target=-blank] 选择所有使用target="-blank"的元素 2
[title~=flower] 选择标题属性包含单词"flower"的所有元素 2
[lang|=en] 选择一个lang属性的起始值="EN"的所有元素 2
a:link 选择所有未访问链接 1
a:visited 选择所有访问过的链接 1
a:active 选择活动链接 1
a:hover 选择鼠标在链接上面时 1
input:focus 选择具有焦点的输入元素 2
p:first-letter 选择每一个<P>元素的第一个字母 1
p:first-line 选择每一个<P>元素的第一行 1
p:first-child 指定只有当<p>元素是其父级的第一个子级的样式。 2
p:before 在每个<p>元素之前插入内容 2
p:after 在每个<p>元素之后插入内容 2
p:lang(it) 选择一个lang属性的起始值="it"的所有<p>元素 2
p~ul 选择p元素之后的每一个ul元素 3
a[src^="https"] 选择每一个src属性的值以"https"开头的元素 3
a[src$=".pdf"] 选择每一个src属性的值以".pdf"结尾的元素 3
a[src*="runoob"] 选择每一个src属性的值包含子字符串"runoob"的元素 3
p:first-of-type 选择每个p元素是其父级的第一个p元素 3
p:last-of-type 选择每个p元素是其父级的最后一个p元素 3
p:only-of-type 选择每个p元素是其父级的唯一p元素 3
p:only-child 选择每个p元素是其父级的唯一子元素 3
p:nth-child(2) 选择每个p元素是其父级的第二个子元素 3
p:nth-last-child(2) 选择每个p元素的是其父级的第二个子元素,从最后一个子项计数 3
p:nth-of-type(2) 选择每个p元素是其父级的第二个p元素 3
p:nth-last-of-type(2) 选择每个p元素的是其父级的第二个p元素,从最后一个子项计数 3
p:last-child 选择每个p元素是其父级的最后一个子级。 3
:root 选择文档的根元素 3
p:empty 选择每个没有任何子级的p元素(包括文本节点) 3
#news:target 选择当前活动的#news元素(包含该锚名称的点击的URL) 3
input:enabled 选择每一个已启用的输入元素 3
input:disabled 选择每一个禁用的输入元素 3
input:checked 选择每个选中的输入元素 3
:not(p) 选择每个并非p元素的元素 3
::selection 匹配元素中被用户选中或处于高亮状态的部分 3
:out-of-range 匹配值在指定区间之外的input元素 3
:in-range 匹配值在指定区间之内的input元素 3
:read-write 用于匹配可读及可写的元素 3
:read-only 用于匹配设置 "readonly"(只读) 属性的元素 3
:optional 用于匹配可选的输入元素 3
:required 用于匹配设置了 "required" 属性的元素 3
:valid 用于匹配输入值为合法的元素 3
:invalid 用于匹配输入值为非法的元素 3
 
CSS定位selenium代码示例如下
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 from selenium import webdriver 4  5 #取消提示 6 option = webdriver.ChromeOptions() 7 option.add_argument('disable-infobars') 8 browser = webdriver.Chrome(chrome_options=option) 9 browser.maximize_window()  #最大化窗口10 11 browser.get('https://www.xxxl.com/')12 browser.implicitly_wait(8)  #隐式等待13 14 list=browser.find_elements_by_css_selector('.home-recommend-goods.home-hot-goods ul.grid-list div.grid-title')#CSS定位15 for i in list:16     log = i.text17     print(log)  #打印所有18 19 browser.quit()

 robotframework代码:

 

CSS定位可以在浏览器中提前查看是否是自己想要的。如,定位百度文本框:

浏览器调试窗口,ctrl+f可以输入定位器。鼠标放在定位的地方,上面也会显示定位表达式,但是是否是唯一,最好检查一下。

 

转载于:https://www.cnblogs.com/Mollylin/p/9242488.html

你可能感兴趣的文章
JSP:Cookie实现永久登录(书本案例)
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
linux--GCC用法
查看>>
Ubuntu下安装MySQL及简单操作
查看>>
OWIN是什么?
查看>>
前端监控
查看>>
centos6.5 mysql忘记登入密码
查看>>
Trusted Execution Technology (TXT) --- 启动控制策略(LCP)篇
查看>>
clipboard.js使用方法
查看>>
绘图库:Matplotlib
查看>>
0906第一次作业
查看>>
Ceph Monitor基础架构与模块详解
查看>>
dbca:Exception in thread "main" java.lang.UnsatisfiedLinkError: get
查看>>
hdu 1232 畅通工程(并查集)
查看>>
移动开发平台-应用之星app制作教程
查看>>
jquery validate使用笔记
查看>>
主要的几个脑网络——整理自eegfmri的博客
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
CABasicAnimation animationWithKeyPath Types
查看>>