python3 selenium自动化测试 强大的CSS定位方法

yipeiwu_com6年前Python基础

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>divs>div#ko”)

以上这篇python3 selenium自动化测试 强大的CSS定位方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python利用字典将两个通讯录文本合并为一个文本实例

Python利用字典将两个通讯录文本合并为一个文本实例

本文实例主要实现的是利用字典将两个通讯录文本合并为一个文本,具体代码如下: def main(): ftele1=open("d:\TeleAddressBook.txt","r...

Python OpenCV调用摄像头检测人脸并截图

本文实例为大家分享了Python OpenCV调用摄像头检测人脸并截图的具体代码,供大家参考,具体内容如下 注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别...

python 根据时间来生成唯一的字符串方法

我们很多时候,特别是在生成任务的时候,都需要一个唯一标识字符串来标识这个任务,比较常用的有生成uuid或者通过时间来生成。uuid的话可以直接通过uuid模块来生成。如果是时间的话,可以...

Python3用tkinter和PIL实现看图工具

Python3用tkinter和PIL实现看图工具

需求 想做看图工具的,必然要支持jpg、png等常见格式,但tkinter是个纯粹的GUI库,不像GTK、QT那样大而全,所以只支持gif和ppm两种格式,局限很大,必须搭配图像处理库,...

python 实现数字字符串左侧补零的方法

因为做新闻爬虫,url里面0-9的日期要左侧加零。经过查询之后得到了两种方法。 一、先设一个足够大的数,比如1000000,然后加上当前的数字比如9,得到1000009,然后转化为字符串...