1、项目稳定且周期较长的项目
2、软件需求变化不大的项目
3、自动化测试程序可以重复使用的项目
测试产品分为 B/S 和 C/S
B/S的工具:QTPAutoRunner appium
C/S的工具:Selenium、QTP、AutoRunner 、Robot framework
1、单元测试、功能测试、接口测试已经完成的基础上开始做自动化测试
2、为了在做回归测试的时候,提高我们的测试效率
(此处自动化环境搭建用的是Pycharm和Chrom,selenium框架工具也是对应Chrom的)
1、安装selenium框架工具pip install selenium
2、我们下载对应驱动包,然后放到path路径中
这里我用的是Chrom来做自动化,所以要安装chromedriver
因为chromedriver需要跟浏览器的版本一样,所以下载前看一下自己的Chrom版本,一定要版本相同,不然可能会出问题,如果没有版本完全一样的,前三段版本号能对的上就可以
Chrom会出现自动更新个的问题,如果自动更新就会跟驱动的版本不一样,所以需要先关闭Chrom的自动更新服务
chromedriver的地址:
Chrome for Testing availability
这里我们选择这个下载
下载完成后,然后放到path路径中
注意:放在Python的环境变量中,如果不知道在哪可以打开Python控制台输入一下:
先输入import sys回车
再输入sys.path 回车
这个路径就是放置selenium的,把下载的.exe扔进去即可
这里我再提供几个其他浏览器的驱动下载地址
Edge:[Microsoft Edge WebDriver - Microsoft Edge Developer](https://developer.microsoft.com/en- us/microsoft-edge/tools/webdriver/)
Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
关于selenium工作原理:
selenium他会自动调用对应驱动的,打开浏览器,然后去访问服务器进行操作
接下来打开Pychram就可以开始编写自动化程序了
我们如何定位页面的各种元素呢?
我们可以对任意页面中按 F12,这时会打开浏览器控制台
我们可以看到页面各种元素,这样就能够知道我们要定位的元素是哪个
下面是一段简单的代码
各部分浏览器的driver
driver常用的属性与方法:
get(url) 打开对应的网页
driver.back 后退
driver.forward() 前进
driver.refresh() 刷新
属性:
driver.current_url 获取页面的URL地址
driver.title 获取页面标题
driver.page_source 获取页面源码
driver.minimize_window() 窗口最小化
time.sleep(3) 等待3秒继续执行
driver.get_window_size() 获取窗口大小
driver_window_size(1440,900) 自定义窗口大小
driver.get_screenshot_as_file('screenshot.png') 获取屏幕截图
我们还可以使用鼠标键盘事件来触发
这里的: 创建一个 对象,用于模拟鼠标操作
其实有很多方法都可定位 ’a‘ 标签
1. 通过链接的文本内容查找:
link = driver.find_element(By.link_TEXT, '点击这里')
2. 通过部分文本查找:
link = driver.find_element(By.PARTIAL_link_TEXT, '点击')
3. 通过 CSS 选择器查找:
link = driver.find_element(By.CSS_SELECTOR, 'a[href="https://www.csdn.net"]')
4. 通过 XPath 查找:
link = driver.find_element(By.XPATH, '//a[@href="https://www.csdn.net"]')
这些方法可以根据不同的场景,找到你需要点击的超链接元素
关于
是 Selenium 中一个非常有用的类,用于模拟复杂的用户交互操作,如鼠标移动、点击、双击、拖放等。以下是一些常用的 方法及其用法:
1. 鼠标点击操作
click(): 单击指定的元素
click_and_hold(): 在指定元素上按住鼠标按钮,不释放
context_click(): 在指定元素上执行右键单击
double_click(): 在指定元素上执行双击操作
2. 键盘操作
send_keys(): 向当前元素发送键盘输入。
send_keys_to_element(): 向指定元素发送键盘输入。
key_down(): 按住某个键,如 Shift 或 Ctrl。
key_up(): 释放某个按键
3.鼠标移动操作
move_to_element(): 将鼠标移动到指定元素上。
move_by_offset(): 将鼠标从当前位置移动指定的偏移量。
4. 拖放操作
drag_and_drop(): 将元素从源位置拖动并放置到目标位置。
drag_and_drop_by_offset(): 将元素拖动到指定的偏移位置。
5. 链式操作
ActionChains 是支持链式调用,允许你将多个操作组合在一起,然后通过 perform() 执行
6. 释放操作
release(): 释放鼠标按键,通常与 click_and_hold() 配合使用
7. 滚动操作
scroll_by_amount(): 滚动页面或元素。
这些方法可以在自动化测试中模拟更复杂的用户行为(所有的测试都是为了防刁民)