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

news/2024/4/24 20:37:55/文章来源:https://blog.csdn.net/myh919/article/details/129142482

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.luyixian.cn/news_show_72177.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解QPSK的实质-I右手正旋-Q左手负旋

正在学习5GNR PDCCH&#xff0c;用到QPSK。作一小结。 引言 我认为像我这样一个死民科&#xff0c;非主流非科班的通信人&#xff0c;理解QPSK的意义&#xff0c;甚至不比欧拉公式&#xff0c;或者是傅里叶变换小。 因为QPSK相较于BPSK&#xff0c;是真正第一次体现了调制的…

模拟默认密码自动生成-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

【案例5-2】 模拟默认密码自动生成 【案例介绍】 1.任务描述 本例要求编写一个程序&#xff0c;模拟默认密码的自动生成策略&#xff0c;手动输入用户名&#xff0c;根据用户名自动生成默认密码。在生成密码时&#xff0c;将用户名反转即为默认的密码。 2.运行结果 运行结…

Power BI 数据处理介绍(数据初始调整、合并列及查看数据结构)

本系列的文章&#xff1a; 安装流程和示例介绍&#xff1a; 《Power BI windows下载安装流程&#xff09;》《Power BI 11个必学官方示例数据案例&#xff08;附下载链接&#xff09;》 数据导入阶段介绍&#xff1a; 《Power BI 数据导入&#xff08;SQL Server、MySQL、网页…

C++(42)-FSM-有限状态机

1.FSM 是什么&#xff1f; 一种用来进行对象行为建模的工具&#xff0c;用于描述对象在生命周期内所经历的状态序列&#xff0c;以及如何响应来自外界的各种事件。2.FSM 组成&#xff1a;状态、事件、动作3.FSM类型&#xff1a; 3.1Moore: 输出&#xff1a;当前状态有关…

mysql -学习总结

mysql 详解1、mysql特点2、事务2.1 事务的四大特性 – ACID2.2 并发事务问题2.3 事务的四大隔离级别2.4 事务隔离级别操作sql2.5 事务原理 – LBCC MVCC2.4.1 行的隐藏列2.4.2 ReadView2.4.3 MVCC在四种隔离级别下的区别2.5 undo log、binlog、redo log2.5.1 Undo log2.5.2 bin…

2023年2月22日PMP®项目管理认证课程正式开课

PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。国内众多企业已把PMP认证定为项目经理人必须取得的重要资质。 PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。…

安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?

MQTT是基于发布/订阅的轻量级即时通讯协议&#xff0c;很适合用于低带宽、不稳定的网络中进行远程传感器和控制设备通讯等操作中。在我们的软件研发中&#xff0c;也经常使用MQTT协议进行消息通信等。今天来和大家分享一些关于在安装MQTT Server中遇到的疑难问题及解决思路。当…

文献综述怎么写?有哪些准备工作和内容要求

文献综述的撰写是提高研究生论文写作能力的重要途径&#xff0c;是研究生在撰写学术论文和学位论文中必须要涉及的内容&#xff0c;是不可或缺的&#xff0c;写好一篇好的文献综述是存在诸多困难和挑战的&#xff0c;需要掌握一定的技巧和方法。 一、文献综述的写作目的 文献综…

mysql常用且易混淆函数整理

DATE_FORMAT(date&#xff0c;format) 函数中format的格式如下&#xff1a; 类型转化函数 为了进行数据类型转化&#xff0c;MySQL提供了CAST()函数&#xff0c;它可以把一个值转化为指定的数据类型。类型有&#xff1a;BINARY,CHAR,DATE,TIME,DATETIME,SIGNED,UNSIGNED 示例&a…

Python|每日一练|数组|回溯|栈|树|双指针|单选记录:N 皇后|二叉树的前序遍历|四数之和

1、N 皇后&#xff08;数组&#xff0c;回溯&#xff09; n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 …

操作系统真相还原_第6章:完善内核

文章目录6.1 函数调用约定简介6.2 汇编语言和C语言混合编程汇编调用CC调用汇编6.3 实现打印函数流程程序编译并写入硬盘执行6.4 内联汇编简介汇编语言AT&T语法基本内联汇编扩展内联汇编6.1 函数调用约定简介 调用约定&#xff1a; calling conventions 调用函数时的一套约…

「mysql是怎样运行的」第5章 盛放记录的大盒子---InnoDB数据页结构

「mysql是怎样运行的」第五章 盛放记录的大盒子—InnoDB数据页结构 文章目录「mysql是怎样运行的」第五章 盛放记录的大盒子---InnoDB数据页结构[toc]一、不同类型的页介绍二、数据页结构的快速浏览三、记录在页中的存储记录头信息的秘密四、Page Directory(页目录)五、Page He…

在ONLYOFFICE中借助ChatGPT一键创建招聘启事的内容

大家好&#xff0c;相信和多人都在生活中或工作中看到过招聘启示&#xff0c;或多或少都会有些了解。今天教大家在ONLYOFFICE中怎样通过chetGPT创建一份满意的招聘启示&#xff0c;下面是我用chatgpt制作的一份招聘信息&#xff0c;请大家看一下。 ONLYOFFICE ONLYOFFICE文档是…

(HP)新手引导使用react-shepherd

1&#xff0c;官方参数文档&#xff1a;https://shepherdjs.dev/docs/tutorial-02-usage.html 2&#xff0c;基本代码 import { ShepherdTour } from react-shepherd; import ./index.less; // 自己的样式文件&#xff0c;用来修改样式 import ./shepherd.less; // 将shephe…

C++性能白皮书

最近看完了《C性能白皮书》&#xff0c;这本书列出了一些性能优化的思路&#xff0c;不过只是一些指引&#xff0c;没有讲具体细节&#xff0c;我整理出了其中的关键点分享给大家&#xff1a; 硬件篇 作为一个程序员&#xff0c;想要性能优化&#xff0c;最好要了解些硬件&…

为什么redis的zset用跳跃表而不用b+ tree?

这两天有小伙伴问我一个问题&#xff0c;为什么redis的zset用跳跃表&#xff0c;不用b tree&#xff1f; 我先不说结论&#xff0c;我先说下 跳跃表 和Btree 。 跳跃表 在之前的 《redis源码阅读-zset》 中&#xff0c;已经详解了zset的使用跳跃表的源码&#xff0c;今天借用…

hadoop3.*集群搭建,小白必看

hadoop广义上讲是一个大数据生态圈&#xff0c;接受大量处理、处理大量数据的一个全套的框架&#xff01;hadoop3.x版本以后&#xff0c;主要有三大模块&#xff0c;HDFS、YARN、mapReduce这三大核心组成&#xff01;什么是HDFS?分布式文件系统&#xff0c;hadoop集群的功能类…

数值方法笔记4:插值、近似和拟合

1. 插值1.1 插值的一些概念1.1.1 插值的定义1.1.2 插值的存在性1.1.3 插值的误差分析1.2 拉格朗日插值(Lagrange Interpolation)1.2.1 拉格朗日插值误差分析1.3 Newton多项式插值1.3.1 Newton多项式插值误差分析1.4 Chebyshev多项式确定插值点1.4.1 Chebyshev多项式性质1.5 有理…

内存映射(1)

内存映射 将磁盘文件中的数据映射到内存&#xff0c;用户通过修改内存就能修改磁盘文件 相关的系统调用&#xff1a; void *mmap() 功能&#xff1a;将一个文件或设备的数据映射到内存中 参数&#xff1a; void *addr : NULL 由内核指定length : 要映射的数据长度&#xff0c;…

JUC并发编程——进程与线程

目录一、进程和线程的概念1.1 进程1.2 线程1.3 进程与线程对比二、并行和并发的概念三、线程基本应用3.1 多线程应用——异步调用一、进程和线程的概念 1.1 进程 ● 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载至 …