python元素定位

selenium 工具模拟用户行为,web端的UI层的自动化测试工具。最擅长做的事情就是模拟用户点击,输入内容等等。

引言:

       自动化测试模拟用户操作,用户访问一个百度站点,找到搜索框,输入123,点击百度一下这个操作。全程都是用眼睛看的,人有思维;

       那么自动化测试不像一样有眼睛去看,自动化测试需求识别HTML页面上的信息---也就是我们所说的元素;所以做自动化测试需要我们首先去定位到我们要找的元素,这样的话呢,我们就不得不学习,前端知识,认识 html 页面,比如我们要知道标签和标签的层级以及什么是元素?什么是元素的属性?

我们以百度首页为例子讲解:(打开百度,按下F12)

1.HTML标签:

              <html>   声明html网页

              <a>代表的是一个链接 href='https://www.baidu.com'

              <title>窗口的标题

              <form>   表单  一般存在于登录页面

              <div>没名字,是一个块标签,是一个容器标签,里面可以包含不同的标签,比如a,p,div 取决于前端开发人员

              <span>   没名字,是一个块标签,是一个文本容器标签,里面一般放文本不同的标签

              <p>声明的是一个段落

              <input>是一个文本框 

              <img>    代表的是图像

              <iframe>html页面中的一个网页嵌套另一个网页 

python元素定位

 

HTML标签的层级关系:

爷爷类标签 <---- 父类标签 <---- 子类标签  (根据层级的镶嵌状态来判断)

python元素定位

python元素定位

 python元素定位

元素定位与写法:

 python元素定位

python元素定位

模拟用户点击:click()

模拟用户输入信息:send_keys()

元素定位实例:

python元素定位

在html中link_text指的是什么

python元素定位

a标签是超链接标签,href属性的值是超链接的地址,标签正文link text是超链接文字的内容。
例:<a href="https://www.baidu.com">百度一下,你就知道</a>

元素定位xpath语法与css语法:

一般,我们定位的方式大部分都是用css来定位,因为css语法简洁、点位速度快、抗变形强,只有存在需求稳定下来不频繁更改时,不更改界面的元素代码时,可以通过xpath来定位,所以xpath这也就成为了css的后盾,用css定位不了,就用xpath。

python元素定位

xpath语法:(以360搜索为例搜索框)

1.通过路径查找元素,一级一级查找,从html最外层一直查找到目标元素所在位置。

python元素定位

python元素定位

2.通过元素属性定位:

python元素定位

python元素定位

3.通过多个属性组合定位

python元素定位

4.通过层次与属性组合定位 

python元素定位

css语法:(以360搜索为例搜索框)

1.用css的属性定位(常用)

python元素定位

dr.find_element_by_css_selector("标签[属性=‘属性值’]")

2.用id或者class定位  id--用一个#代替  class--用一个.代替 (多应用于css的层级与属性结合定位)

python元素定位

3.css的层级和属性结合定位(父类标签:爸爸>儿子)

python元素定位

 python元素定位