用python实现selenium 自动化测试

web自动化测试方案

概要

  • 对于web端自动化测试方案中目前使用范围比较广的有:puppeteer,pyppeteer,selenium。puppeteer是谷歌开发的浏览器测试框架,使用NodeJs开发;pyppeteer是基于puppeteer开发的python版本,但是这个版本的Bug修改以及更新比较慢。selenium是目前使用比较广相对于比较稳定的web测试框架。
  • 对于我们目前的web测试来说,pyppeteer和selenium都是足够用的,但是目前还是比较倾向于selenium。主要是selenium还是使用范围稍微广点,网上资料多谢。

使用(selenium, Google浏览器测试)

python脚本代码
  • 由于网页的渲染相对于程序执行来说还是比较慢的,连续点击或者需要等待页面更新的还是需要增加一定的延时(测试过程中500毫秒的延时基本上可以解决)。
  • 参考文档

https://blog.csdn.net/weixin_44318830/article/details/103339273

  • 下载驱动

打开浏览器,在地址栏输入chrome://version/便可以查看到谷歌当前的版本号
http://chromedriver.storage.googleapis.com/index.html
下载和自己版本最近的版本

  • 安装驱动

将chromedriver.exe放到python的可执行目录下

  • 启动
import time
import sys
from selenium import webdriver
# 这个包可以模拟键盘上所有的按键
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

# 配置默认模式
options = Options()
# 设置chrome浏览器无界面模式 
# 无界面模式也可以截图
options.add_argument('--headless')
# 禁用gpu优化
options.add_argument('--disable-gpu')
drive = webdriver.Chrome(options=options)

# 设置最大化
# (1)
drive.maximize_window()
# (2)
width  = drive.execute_script('return document.body.parentNode.scrollWidth')
height = drive.execute_script('return document.body.parentNode.scrollHeight')
drive.set_window_size(width, height)

# 等待页面启动浏览器
driver.implicitly_wait(10)  # seconds

try:
    # 访问服务
    driver.get("http://localhost:8080/#/")

    # 开始测试
    # 说明: 
    # 我主要使用的是 driver.find_element_by_css_selector("")函数来查找相关的标签
    # (1) 输入框
    element = driver.find_element_by_css_selector(".a378 .el-input__inner")  #通过选择器查找相关的类 嵌套类使用 (空格隔开)
    element.clear() #清除输入框原有的数据(有些输入框可能有默认数据)
    element.send_keys("value") #给输入框设置数据
    # (2) 按钮(需要点击)
    driver.find_element_by_css_selector(".ab7b").click()  #通过选择器查找相关的类 嵌套类使用 (空格隔开)
    # (3) 下拉列表(连续执行下拉列表需要增加延时)
    #通过选择器查找相关的类 嵌套类使用 (空格隔开) 展开下拉列表
    driver.find_element_by_css_selector(".abab").click() 
    #列举下拉列表项
    element_list = driver.find_element_by_css_selector("div[x-placement] .el-select-dropdown__item span")
    # (4) 时间选择器
    driver.find_element_by_css_selector(".aee1").click() 
    # 增加延时 需要时间显示日历页面
    time.sleep(0.5)
    # 点击上一个月的按钮
    driver.find_element_by_css_selector("div[x-placement] .is-left .el-icon-arrow-left").click()
    # 点击上一年的按钮
    driver.find_element_by_css_selector("div[x-placement] .is-left .el-icon-d-arrow-left").click()
    # 点击下一个月的按钮
    driver.find_element_by_css_selector("div[x-placement] .is-right .el-icon-arrow-right").cliek()
    # 点击下一年的按钮
    driver.find_element_by_css_selector("div[x-placement] .is-right .el-icon-d-arrow-right").click()
    time.sleep(0.1)
    # 选择1号(第一个 available)
    # 开始日期
    driver.find_element_by_css_selector("div[x-placement] .is-left .available span").click()
    # 结束日期
    driver.find_element_by_css_selector("div[x-placement] .is-right .available span").click()
    # 截图
    driver.save_screenshot('./login_pre.png')

finally:
    # 关闭浏览器
    driver.close()

视频录制
  • 通过selenium IDE进行脚本录制
  • 参考文档

https://zhuanlan.zhihu.com/p/137206279

  • 安装selenium

Google网上应用商店 查找selenium ide
在这里插入图片描述

  • 启动selenium ide
    在这里插入图片描述
  • 进入selenium ide

点击 “Record a new test in a new project”
在这里插入图片描述

  • 添加项目名
    在这里插入图片描述

点击OK

  • 添加需要录制的网址,开始录制
    在这里插入图片描述

点击START RECORDING

  • 停止录制
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值