自动化测试——selenium(环境部署和元素定位篇)

自动化测试——selenium(环境部署和元素定位篇)

文章目录

一、什么是selenium?
   > 一个web自动化测试工具;
二、主流的自动化工具:
   > QTP:收费 支持(支持web、桌面软件自动化)
   > selenium:免费,开源 只支持web项目
   > Robot frameword: 基于Python扩展关键字驱动自动化工具

注意:要是用selenium自动化工具,要先下载安装selenium

一、web自动化环境部署

1.1 selenium安装

1、安装

在cmd 直接输入 :pip install selenium

2、卸载:

在cmd输入:pip uninstall selenium

3、查看:

pip show selenium 或者 pip list

pip 是python中包管理工具(可安装,可卸载,查看python工具),使用pip的时候必须联网

有的输入 pip install selenium 会提示出现 ‘pip’ 不是内部或外部命令,也不是可运行的程序或批处理文件。产生这个原因python环境内部没有 pip 路径,则需要我们收到导入

​ 解决方法:

​ 1、找到我们python工具中的pip所在文件夹,复制其路径

自动化测试——selenium(环境部署和元素定位篇)

2、右键,点击我的电脑 选择属性,点击高级系统设置,再点击环境变量

自动化测试——selenium(环境部署和元素定位篇)

3、点击环境变量后,找到Path然后编辑,把复制上的路径粘贴进去就可以了。

自动化测试——selenium(环境部署和元素定位篇)

; 1.2 浏览器驱动获取

这里有多种浏览器,但是很多浏览器都是用的,谷歌,火狐,Edge中的内核,在这里讲的就是最具有代表性的谷歌浏览器

获取谷歌浏览器的驱动地址:http://chromedriver.storage.googleapis.com/index.html

1)、获取浏览器的版本一定要选本地电脑谷歌浏览器版本号一样,注意:这里可能有些版本驱动地址没有一模一样的,但是可以选择用 . 号隔开的前三位必须相同,第四位可以选最接近你浏览器版本的那个数. 后面一步的是有,这里只有win32位,但是不影响,64位也能用这个驱动,但是显示的是64位,那么32位就不能用了,这里选择对应操作系统就可以了。

自动化测试——selenium(环境部署和元素定位篇)

1.3 浏览器驱动安装

下载好驱动压缩包过后,解压得到 chromedriver.exe 驱动程序把他放进Python解释器根目录下,就ok了

自动化测试——selenium(环境部署和元素定位篇)

; 二、web自动化的基本代码

步骤:
1、导包
2、实例化浏览器对象
3、打开网页
4、时间轴观察效果
5、关闭网页
"""
web 自动化基本代码
"""

from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

sleep(5)

driver.quit()

三、八大元素定位

1、为什么要使用元素定位?

​ 计算机无法向人一样,所见即所得,因此需要通过元素定位来指定计算机所定位的元素来进行操作

2、定位工具:

​ 1)、谷歌使用 F12 进入开发者工具

​ 2)、右键点击 检查进入开发者工具

自动化测试——selenium(环境部署和元素定位篇)

自动化测试——selenium(环境部署和元素定位篇)

3、定位元素是依赖于什么?

​ 标签名、属性、层级、路径

定位方式:
1、id
2、name
3、class_name(使用的是class属性进行定位)
4、teg_name (标签名称)
5、link_text(定位超链接 a 标签)
6、partial_link_text(定位超链接 a 标签 包含关系)
7、xpath (路径)
8、css (元素选择器)

注意:这是 selenium 框架中提供的八大元素定位方法,只要能够定位目标元素,用哪一种都无所谓,最常用的是 id ,xpath,css

3.1 id定位方法

说明:通过元素的id属性定位,id一般情况下在当前页面中是唯一。

提示:元素必须要有id属性。


find_element_by_id(元素value)
1、元素定位:首先调用find_element_by_id(元素value)获得元素定位
2、调用send_keys来填写内容
3、通过⽬标元素的 id 属性值定位, 由于 id 值一般是唯一的,因此当元素存在 id 属性值时, 优先使用 id 方法定位元素

from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

driver.find_element_by_id('kw').send_keys('易烊千玺')

sleep(3)

driver.quit()

3.2 name定位方法

说明:通过元素的name属性来定位, name一般名称为重复

提示:元素必须要有name属性

1、name方法:由于元素的 name 属性值可能存在重复, 必须确定其能够代表⽬标元素唯⼀性之后, ⽅可使⽤
2、当页⾯面内有多个元素的特征值是相同的时候, 定位元素的⽅法执⾏时,默认只会获取第⼀个符合要求的特征对应的元素
3、因此, 定位元素时需要尽量保证使⽤的特征值能够代表⽬标元素在当前⻚页⾯内的唯⼀性!否则定不了位,添加在第一个定位的位置

name 的定位方法不是唯一的,默认只会获取第⼀个符合要求的特征对应的元素,在确认他是第一个符合要求的特征对应的元素,即可使用。

错误示范:

自动化测试——selenium(环境部署和元素定位篇)

所以要精准找到在确认他是第一个符合要求的特征对应的元素,方可用这个方法。

driver.find_element_by_name('name的值')

from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()

driver.get('file:///D:/%E6%A1%8C%E9%9D%A2/page/%E6%B3%A8%E5%86%8CA.html')

username = driver.find_element_by_name('userA')
username.send_keys('易烊千玺')
password = driver.find_element_by_name('passwordA')
password.send_keys('12123')

sleep(3)

driver.quit()

3.3 class_name 方法

说明:通过元素的class属性来定位,class属性一般为多个值。

提示:元素必须要有class属性

注意:
1、方法名是class_name ,但是我们找的是class属性
2、如果元素的 class 属性值存在多个值, 在 class_name 方法使用时, 只能使⽤其中的任意⼀一个


driver.find_element_by_class_name
"""
class_name 方法:方法名是 class_name, 但要找元素的 class 属性值
"""

from time import sleep

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('file:///D:/%E6%A1%8C%E9%9D%A2/page/%E6%B3%A8%E5%86%8CA.html')

tel = driver.find_element_by_class_name('telA')
tel.send_keys('18611111111')

"""
如果元素的 class 属性值存在多个值, 在 class_name ⽅法使用时, 只
能使用其中的任意⼀个
"""

mail = driver.find_element_by_class_name('dzyxA')

mail.send_keys('123@qq.com')

sleep(3)

driver.quit()

3.4 tag_name 方法

说明:通过元素的标签名称来定位,标签名(查看元素时尖括号(

Original: https://blog.csdn.net/qq_54219272/article/details/123310772
Author: 鸢也
Title: 自动化测试——selenium(环境部署和元素定位篇)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/648141/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球