UI自动化测试(Python)-XPATH、CSS定位

58 阅读2分钟

src=http___i.cqdj.cc_forum_201307_27_160601dupc4j8gucap6mld.gif&refer=http___i.cqdj.gif

   您好,我是游手好闲的小羊!

前言

在之前的文章中,我已经将常见的五大元素的定位讲了一遍,现在再复习一下,
分别是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的绝对路径和相对路径

绝对路径:从根⽬录开始,逐级查找标签。

image.png

相对路径:从任意层级开始,查找标签。

image.png

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。