python selenium之CSS定位
ccs的优点:css相对xpath语法比xpath简洁,定位速度比xpath快
css的缺点:css不支持用逻辑运算符来定位,而xpath支持。css定位语法形式多样,相对xpath比较难记。
css定位建议多用,这个定位方式很强大,定位速度快且准确度高。至于难记,用熟了就好了,对勤快的人来说,这不是问题。
CSS_selector常用符号:
# 表示id
. 表示class
> 表示子元素,层级
1.通过id属性定位:
find_element_by_css_selector("#id的属性值")
实例:find_element_by_css_selector("#kw")
2.通过class_name属性定位:
find_element_by_css_selector(".class的属性值")
实例:find_element_by_css_selector(".s_ipt")
3.通过其它属性定位:
find_element_by_css_selector("[属性=‘属性值’]")
find_element_by_css_selector("[属性=属性值]") ---------------- 请注意这里属性值没有加引号
实例1:find_element_by_css_selector("[name=‘kw’]")
实例2.1:find_element_by_css_selector("[style=‘display’]")
实例2.2:find_element_by_css_selector("[style=display]") ---------请注意这里属性值没有加引号
这里特意举例两次,是强调引号在这里加不加都没关系,不会影响定位。
4.通过父子关系定位:
假如你不知道某人的身份证号码、名字、手机号码等信息时无法取得联系,但是你知道某人爸爸的手机号码,此时你可以通过他爸爸来找到某人。也就是通过(“他爸爸[phone=手机号]>本人”) 找到某人。
换成术语就是当我们定位元素时,发现没有可以标识的唯一的元素的属性值时,那我们可以考虑用父亲标签结合属性来定位元素。例如:
find_element_by_css_selector(“input#id的属性值>下级标签”)
实例:find_element_by_css_selector(“input#kw>div”)
5.通过爷爷关系定位:
假如他爸爸也没有手机号码,此时你可以往上找他爷爷。也就是也就是通过(“他爷爷[phone=手机号]>他爸爸>本人”) ,找到某人。
换成术语就是当我们定位元素时,发现父亲标签中没有可以标识的唯一的元素的属性值时,那我们可以考虑用爷爷标签结合属性来定位元素。例如:
实例:
find_element_by_css_selector(“input#kw>div>div#ko”)
定位discuz搜索栏:
find_element_by_css_selector(".wp>div>form>table>tbody>tr>td>input").send_keys(u"郑迎")
find_element_by_css_selector("div.wp>div>form>table>tbody>tr>td>input").send_keys(u"郑迎")
python selenium之CSS定位的更多相关文章
- python selenium模块 css定位
selenium是python的非标准库,使用时需要下载安装 安装命令 pip install selenium selenium是python的自动化测试模块,可以模拟浏览器的行为 所以在使用之前 ...
- python+selenium 元素被定位到而且click()也提示执行成功,但是页面就是没有变化和跳转。
python+selenium 元素被定位到而且click()也提示执行成功,但是页面就是没有变化和跳转. 如果多次定位和click(),有时候会跳转. 我遇到很多次就是很郁闷,有人说,操作太快的,页 ...
- 6 Python+Selenium的元素定位方法(CSS)
[环境] python3.6+selenium3.0.2+Firefox50.0+win7 [定位方法] 1.方法:find_element_by_css_selector('xx') CSS的语法比 ...
- Python selenium根据class定位页面元素
在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写id属性.通常一段html代码如下: <div cl ...
- selenium之css定位小结
前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...
- 自动化测试-6.selenium的css定位
前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...
- python+selenium二:定位方式
# 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2 ...
- selenium之css定位
实在记不住,烂笔头就记一下吧. 一. 单一属性定位 1:type selector driver.find_element_by_css_selector('input') 2:id 定位 drive ...
- python + selenium 练习篇 - 定位元素的方法
1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8from selenium import webdriverdriver = webdriver.Chrome() ...
随机推荐
- [淘宝客技术篇005]如何取站点id和推广位id
我们知道,生成一个用于推广的淘客链接,是需要指定对应的站点id和推广位id的,也就是siteid和adzoneid. 今天,火星来客跟大家分享两个不同的方法获取站点id和推广位id. 方法一:直接获取 ...
- SpringBoot中获取微信用户信息从未如此简单!
前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要 ...
- HTML5为什么只需要写<!DOCTYPE HTML>?
HTML4.01中的doctype需要对DTD进行引用,因为HTML4.01基于SGML.而HTML5不基于SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为.其中,SGM ...
- android 和 webService交互
webService 很久不用了,第一次使用还是13年, 早已忘记怎么搞了.今天看了篇博文,写了个demo .记录下吧! 首先要下载skoap2 .... xxx.jar ,我用的是最新的3.6. ...
- maven引入本地jar包的方法
maven作为包管理工具,好处不必多说 但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖) 如果直接下载到本地之后,怎么整合到自己的maven工程 ...
- day 3 总结
- 40 (OC)* 数据库常见sql语句
1:增加INSERT INTO t_student (name, age) VALUES ('liwx', 18);2:删除DELETE FROM t_student WHERE name = 'li ...
- /bin/java: 没有那个文件或目录spark/bin/spark-class:行71: /usr/java/jdk1.8
1.检查java环境有没有问题 2.1没问题后检查文件的编码是否有问题
- FPGA、GPU、CPU三者各自的优缺点是什么呢?
CPU: 英文全称:Central Processing Unit. 中文全称:中央处理器. 厂商:英特尔Intel. 功能:是一台计算机的运算核心和控制核心. 缺点:运算能力(最弱),核处理数(最少 ...
- NET Core 3.0 新姿势 将AutoFac替换内置DI
.NET Core 3.0 和 以往版本不同,替换AutoFac服务的方式有了一定的变化,在尝试着升级项目的时候出现了一些问题. 原来在NET Core 2.1时候,AutoFac返回一个 IServ ...