您好,我是游手好闲的小羊!
前言:
在之前的文章中,我已经将常见的五大元素的定位讲了一遍,现在再复习一下,
分别是id定位、class_name定位、name定位、link_text定位、partial_link_text定位,
今天的话主要讲解的是XPATH定位和CSS定位。
一、为什么要学习xpath和css?
1、如果标签没有(id\name\class)3个属性,也不是链接标签,只能使⽤tag_name定位,⽐较麻烦。 2、⽅便在⼯作⽤中查找元素,使⽤xpath和css⽐较⽅便(⽀持任意属性、层级)来找元素
二、Xpath的基础介绍
2.1 什么是Xpath?
说明:xpath是用来在xml文件中进行元素定位的标记语言,html 是一种特殊的xml,所以xpath也可以用在html中
2.2 Xpath的绝对路径和相对路径
绝对路径:从根⽬录开始,逐级查找标签。
相对路径:从任意层级开始,查找标签。
2.3Xpath定位策略
- 路径定位
- 属性定位
- 属性与逻辑结合
- 属性与层级结合
定位方法: find_element_by_xpath(xpath) # xpath表达式
按Ctrl+F 可以在搜索框对xpath和css表达式进行校验
2.4元素属性定位
//*或者//tag_name //*[@attribute='value']
attribute表 示的是元素的属性名,value表示的是元素对应属性值
2.5 属性与逻辑结合定位
//* 或者//tag_name 开头 //*[@attribute1='value1' and@attribute2='value2']
2.6属性与层级结合定位
是以//*或者//tag_name开头 //p[@id='pa']/input在任意层给当中,都可以结合属性来使用
三、CSS定位的基础介绍
3.1什么是css?
说明:css选择器是html查找元素的⼯具
3.2Css定位策略
- id选择器
- 类选择器
- 标签选择器
- 属性选择器
- 层级选择器
id选择器
语法: #id属性值
前置: 标签必须id属性
类选择器
语法: .class属性值
前置: 标签必须class属性
标签选择器
语法: 标签名
提示: 注意标签是否在⻚⾯中唯⼀,否则返回单个或所有
属性选择器
语法: [属性名='属性值']
说明: 标签任意属性都可以
层级选择器
⽗⼦关系: 选择器>选择器 如: #p1>input
后代关系: 选择器 选择器 如: #p1 input
提示: 选择器使⽤任何⼀种css选择器(id选择器、类选择器、属性选择器、标签选
择器)都可以
总结:
1、⾸推css定位,原因执⾏速度快。
①如果有ID属性,使⽤#id
②没有id属性,使⽤其他有的属性(能代表唯⼀的属性)
③如果属性都带不了唯⼀,使⽤层级
2、如果css解决不了,使⽤xpath。