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

【技术分享】Web自动化之Selenium安装

Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误,也比较费时间。因此,将这些任务自动化,就可以消除人为因素。Selenium 可以帮助我们自动化完成验收测试,通过构建更严格的测试,从而使软件更为可靠也更易于维护。

Selenium 支持 Web 浏览器的自动化,它提供一套测试函数,用于支持 Web 自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较等功能。支持多种浏览器、多种编程语言(Java、C#、Python、Ruby、PHP 等)、支持多种操作系统(Windows、Linux、IOS、Android 等)、开源免费。它主要由三个工具组成:WebDriver、IDE、Grid。

Selenium架构

在客户端(client)完成 Selenium 脚本编写,将脚本传送给 Selenium 服务器,Selenium 服务器使用浏览器驱动(driver)与浏览器(browser)进行交互。

Selenium核心组件

  • WebDriver 使用浏览器提供的 api 来控制浏览器,就像用户在操作浏览器,不具有侵入性。
  • IDE 是 Chrome 和 Firefox 扩展插件,可以录制用户在浏览器中的操作。
  • Grid 用于 Selenium 分布式,你可以在多个浏览器和操作系统运行测试用例。

环境准备

Python 自带的 pip 工具安装

  • Python 版本
pip install selenium
复制代码
  • Java 版本
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-server</artifactId><version>3.14.0</version>
</dependency>
复制代码
  • Python 版本

安装 Selenium 的前提是拥有 Python 开发环境(推荐使用 PyCharm):

Selenium 是 Python 的第三方库,可采用 PyCharm 自带方式安装。

菜单栏 File → Settings 进入配置界面:

搜索 Selenium → Install Package:

Selenium 支持多种浏览器,需要下载对应的浏览器版本的驱动,将浏览器驱动位置设置到环境变量。

在 Python 文件中编写代码,如果程序能够调起相应浏览器,说明安装成功。

  • Java 版本

当使用 Maven 或 Gradle 等构建工具时,会自动加载依赖项。

<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version>
</dependency>
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-chrome-driver</artifactId><version>4.0.0</version>
</dependency>
复制代码

实战演示

#导入 Selenium 包
from selenium import webdriver#创建一个 Chromdriver 的实例,Chrome()会从环境变量中寻找浏览器驱动
driver = webdriver.Chrome() 
# 打开 IE 浏览器
# driver = webdriver.Ie()  
# 打开 Firefox 浏览器
# driver = webdriver.Firefox()
复制代码
//导入 Selenium 包
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;public class AiceTest {public static void main(String[] args) throws InterruptedException {//创建一个 Chromdriver 的实例WebDriver driver = new ChromeDriver();}
}
复制代码

这段代码运行后会自动化的创建一个 Chrome 进程。

如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

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

这些资料,对于想做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……加入我的学习交流群一起学习交流讨论把!!!!  

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

相关文章:

  • 【Linux】进程状态的理解
  • 打游戏哪种蓝牙耳机比较好?适合玩游戏的无线蓝牙耳机
  • Fortinet推出新一代自研安全芯片,跨所有网络边缘加速网络与安全融合
  • ChatGPT爆火背后的真相:学编程已经成为必选项
  • Unity UI框架
  • vue2提取vue-router的title单独存放,使用i18n实现
  • 【Linux操作系统】【综合实验三 用户帐号、文件系统与系统安全管理】
  • sqlite3数据库-sqlite语句1(五)
  • 【图像分类】卷积神经网络之LeNet5网络模型实现MNIST手写数字识别
  • 前端开发环境搭建
  • 学习Flask之四、网页表单
  • CenterMask paper笔记
  • 06- OpenCV查找图像轮廓 (OpenCV基础) (机器视觉)
  • OpenGL学习日记之模型绘制
  • Springboot接口多个DTO入参的Postman上传方式
  • 软考各科目考核内容详细介绍,看这里
  • 连续时间信号与离散时间信号
  • TPM密钥管理、使用
  • return和finally执行顺序、运行时异常与一般异常异同、error和exception区别、Java异常处理机制原理与应用
  • 我为什么放弃WinUI3
  • 2023年全国最新安全员精选真题及答案2
  • 计算机408考研先导课---C语言难点
  • K8S 部署 Redis-Cluster 集群
  • [oeasy]python0089_大型机的衰落_Dec小型机崛起_PDP_VAX网络
  • Apache Shiro与Spring Security对比
  • 23春招-mysql事务相关高频面试题
  • 天线理论知识1——基础概念介绍
  • 【云原生之Docker实战】使用Docker部署StackEdit在线Markdown编辑器
  • 特征工程:特征构造以及时间序列特征构造
  • 单master部署简要步骤