当前位置: 首页 > news >正文

【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)

1. 前言

本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!!

2. 如何使用AirtestIDE驱动Firefox浏览器

对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,今天我们重点聊一下,如何使用AirtestIDE驱动Firefox浏览器。

1)基础知识

AirtestIDE内置python环境,环境里面装好了Airtest-Selenium库,是基于Selenium封装的。GeckoDriver是与Firefox浏览器配合使用的驱动程序,安装GeckoDriver需要注意两者的版本兼容,请查看 https://github.com/mozilla/geckodriver/releases 。详细步骤参考下文:

2)下载GeckoDriver(注意选择对应操作系统的版本)

3)解压获得geckodriver.exe

解压刚才下载的文件,得到geckodriver.exe 。

4)给geckodriver.exe设置为系统环境变量

把geckodriver.exe放到你电脑某个目录下,之后给它设置系统环境变量:

5)在AirtestIDE驱动Firefox做简单的自动化测试

动图封面

# -*- encoding=utf8 -*-from airtest.core.api import *
from airtest.cli.parser import cli_setup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from airtest_selenium.proxy import WebFirefox
import time#创建Chrome浏览器驱动实例
browser = WebFirefox(firefox_binary=r"C:\Program Files\MozillaFirefox\firefox.exe")# 访问网页
browser.get('https://www.baidu.com')#打印页面标题
print(browser.title)#休眠3秒
time.sleep(3)#关闭浏览器
browser.quit()

① 版本说明

【AirtestIDE】1.2.15:https://airtest.netease.com/changelog.html【python】3.6.5:AirtestIDE内置【Firefox】113.0.2 (64 位)【geckodriver】0.33.0(win64):https://github.com/mozilla/geckodriver/releases/tag/v0.33.0

② 启动报错

在运行上述demo时,一开始遇到了一个类似这样的报错:

selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line

查询后发现,是找不到Firefox可执行文件的意思,于是在创建WebFirefox时,将firefox.exe可执行文件路径当做参数传递给WebFirefox,之后就可以正常运行了。

3. 如何脱离AirtestIDE驱动Firefox(vscode为例)

1)前置条件:安装VScode、配置python环境

2)python配置airtest、airtest-selenium

可参考:如何部署本地python环境使用命令如下:

pip install airtestpip install airtest-selenium

小编的pip版本太旧了,还需更新pip,使用命令:python -m pip install --upgrade pip

3)在cmd控制台测试环境是否配置成功

4)测试脚本demo,解决报错

① No module named pynput

缺少 pynput库,直接 pip install安装上即可。

② TypeError: init() got an unexpected keyword argument......

Ctrl+鼠标左键到proxy.py文件;出现 argument 'timeout'报错的话删掉timeout=timeout的参数;出现argument 'firefox_options'报错的话删掉firefox_options=firefox_options的参数。

5)脱离AirtestIDE驱动Firefox

4. 小结

今天关于驱动Firefox的教程就到这里啦,更多关于Airtest想看的内容,可以给我们评论/留言。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

http://www.lryc.cn/news/199186.html

相关文章:

  • Python 爬虫入门:常见工具介绍
  • uniGUI文件操作
  • Python多进程之分享(multiprocessing包)
  • 【试题028】C语言关于逻辑与的短路例题
  • TSINGSEE烟火识别算法的技术原理是什么?如何应用在视频监控中?
  • 优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. .运算符
  • 【数之道 08】走进“卷积神经网络“,了解图像识别背后的原理
  • Stm32_标准库_期末设计_温度测量光照测量手机与芯片通信实现信息的更新
  • JavaScript 的类型和值
  • Kotlin Compose Multiplatform 跨平台开发实践之加入 iOS 支持
  • 【小黑嵌入式系统第四课】嵌入式系统硬件平台(二)——I/O设备、通信设备(UARTUSB蓝牙)、其他(电源时钟复位中断)
  • 报错:AttributeError: module ‘tensorflow‘ has no attribute ‘flags‘
  • Android--Retrofit2执行多个请求任务并行,任务结束后执行统一输出结果
  • 面试算法30:插入、删除和随机访问都是O(1)的容器
  • Qt/C++开源作品45-CPU内存显示控件/和任务管理器一致
  • win32汇编-使用子程序
  • 【论文阅读】 Cola-Dif; An explainable task-specific synthesis network
  • ShareMouse for Mac(多台电脑鼠标键盘共享软件)
  • 中文编程开发语言工具开发案例:多种称重方式编程实际例子
  • 国密sm2的Vue、Python、Java互通使用
  • 如何通过SK集成chatGPT实现DotNet项目工程化?
  • DRM中render-node编号的分配
  • 将输入对象转换为数组数组的维度大于等于1numpy.atleast_1d()
  • js 删除树状图无用数据,如果子级没有数据则删除
  • Docker 容器化(初学者的分享)
  • LCS 01.下载插件
  • 架构-设计原则
  • 在 Python 3 中释放 LightGBM 的力量:您的机器学习大师之路
  • Spring学习笔记(2)
  • cmd使用ssh连接Linux脚本