零基础学会用Airtest-Selenium对Firefox进行自动化测试

news2024/12/23 18:42:41

1. 前言

本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。

看完本文零基础小白也能学会Firefox浏览器自动化测试!!!

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

对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,关于如何驱动chrome浏览器,之前我们的推文已经做了很多详细介绍:

  • Selenium快速上手实战 | 上篇
  • Selenium快速上手实战 | 下篇

今天我们重点聊一下,如何使用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 airtest

pip 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.coloradmin.cn/o/597139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis 所有的 jdbcType类型

MyBatis处理MySQL字段类型date与datetime 1) DATETIME 显示格式:yyyy-MM-dd HH:mm:ss 时间范围:[ 1000-01-01 00:00:00到9999-12-31 23:59:59]2) DATE 显示格式:yyyy-MM-dd 时间范围:[1000-01-01到9999-12-31]3&#…

【SpringCloud】1.一文带你入门SpringCloud微服务

文章目录 1. 搭建父工程2. 搭建注册中心3. 搭建一个服务提供者4. 搭建一个服务消费者5. 整合OpenFeign实现服务之间的调用 1. 搭建父工程 最近打算使用 springcloud 搭建微服务玩一下,用到的东西大致有以下这些: jdk 1.8idea 2019maven 3.6.3springclo…

CS5466应用电路图|CS5466设计方案原理图|TypeC转HDMI8K30HZ(4K144HZ)芯片方案原理图

CS5466支持dsc1.1/12a压缩视频传输,是一款Type-C转HDMI8K30HZ或者4K144HZ方案芯片,其设计原理图如下: CS5466 Type-C/DP1.4转HDMI2.1的显示协议转换芯片, 内部集成了PD3.0及DSC decoder,可支持DP 2Lane最高8K30或4K144, 并能按客户…

拉取maven项目 pom出现 The <project> element is the root of the descriptor.

引入将各个module 修改JDK版本为1.8,然后再修改 Perferences -> Build -》Compiler -> Java Compiler各个版本,对各个项目改为1.8

Docker容器学习笔记

一、初始Docker 实质上:是将开发的代码和运行环境打包成一个容器。解决开发(开发环境)、测试(测试环境)、运维(生产环境)之间的沟通交流。 1.1Docker的概念 docker:解决跨环境迁移…

B. 广告投放

B. 广告投放 Problem - B - Codeforces 思路:对于这个题来说,我们很容易可以想到是一个dp问题,我们可以使用f[i][j]表示我们已经处理了前i-1个问题,并且当前剩余的人数是j的情况下,能够得到的最大的收益,那…

共享内存(内存映射的使用、注意事项、进程间通信、systemV共享内存)

一、内存映射 概念:使一个磁盘文件与内存中的一个缓冲区相映射,进程可以像访问普通内存一样对文件进行访问,不必再调用read,write。 mmap()的优点: 实现了用户空间和内核空间的高效交互方式 二、函数定义 void *mmap(void *ad…

PMP课堂模拟题目及解析(第17期)

161. 项目发起人任命一位高级工程师到指导委员会,来帮助监督项目管理计划。该工程师经常不同意由项目团队制定的计划,并在提交批准之前对项目管理计划表达严重关切。项目经理应该怎么做? A. 通知项目发起人,该工程师延迟了规划过程…

2、Kingbase - 修改密码报错

情况 Kingbase数据库修改密码后,重新连接失败 提示信息 致命错误: 用户 "system" Password 认证失败 (kbjdbc: autodetected server-encoding to be GB2312, if the message is not readable, please check database logs and/or host, port, dbname, u…

软件外包开发项目管理工具

随着软件项目的规模越做越大,项目管理人员需要使用工具管理项目进度,从而更有成效的管理好软件开发进度。软件开发的进度管理工具有很多,今天和大家分享一些常用的系统工具,希望对大家有所帮助。北京木奇移动技术有限公司&#xf…

phpStudy2018 mysql启动失败问题

phpStudy2018 mysql启动失败问题 1.winR运行窗口输入services.msc,检查服务里面有MySQLa没有。 有,就打开服务 没有,就打开phpstudy面板,点击其他选项菜单——>服务管理器——>MySQL——>安装服务;然后刷新…

C++ 继承 文字+图片+代码 超详细解刨

什么是继承? 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。 继承呈现了面向对象程序设计的层次结构&am…

二十分钟入门计算机视觉开源神器——课堂笔记

1,统一的深度学习框架,2.0 2,现状 3,代表算法库 (1)目标检测MMDetection 任务支持:目标家呢,实力分割,全景分割 覆盖广泛 算法丰富 使用方便 (2&#xff0…

2023年Q1美团财报解读:拨开云雾 始见月明

原文出处:走马财经 5月底,随着京东、阿里巴巴、腾讯、快手、拼多多、美团等相继发布财报,中国互联网主流大公司的财报发布季结束。 一方面他们体量够大,另一方面他们要么深耕零售,要么与零售、消费息息相关&#xff…

复原IP地址-回溯

1题目 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.01…

17-Vue3中其它的 Composition API

目录 1、shallowReactive 与 shallowRef2、readonly 与 shallowReadonly3、toRaw 与 markRaw4、customRef5、provide 与 inject6、响应式数据的判断7、Composition API 的优势7.1 Options API 存在的问题7.2 Composition API 的优势 1、shallowReactive 与 shallowRef shallowR…

华为OD机试真题 Java 实现【快速开租建站】【2023Q1 200分】,附详细解题思路

一、题目描述 当前IT部门支撑了子公司颗粒化业务,该部门需要实现为子公司快速开租建站的能力,建站是指在一个全新的环境部署一套IT服务。 每个站点开站会由一系列部署任务项构成,每个任务项部署完成时间都是固定和相等的,设为1。…

细看SLMi823x系列SLMi8233BD双通道隔离驱动在 OBC 上的典型应用

数明深力科SLMi823x系列SLMi8233BD隔离驱动技术优势:具有高性能、高性价比、高可靠性的产品特性,应用覆盖UPS、充电桩、服务器电源、通信电源、新能源汽车动力总成系统的车载 OBC 领域。通过CQC认证的。 车载充电器(OBC)是电动汽…

如何研究带有不可微项的目标函数的局部极小值?

以optimtool的算法为例来解释 在Python >3.7的编程环境下,按如下方式下载optimtool,一个基于符号微分与数值近似的优化方法库: pip install optimtool --upgrade pip install optimtool>2.4.2目前没有为目标函数中不可微项增加预处理…

golang http请求封装

http请求封装在项目中非常普遍,下面笔者封装了http post请求传json、form 和get请求,以备将来使用 1、POST请求 1.1、POST请求发送 json 这里发送json笔者使用了2种方式,一种是golang 自带的 http.Post方法,另一是 http.NewReq…