测试|Selenium介绍及环境搭建

news/2025/2/12 8:40:00/

测试|Selenium介绍及环境搭建

1.Selenium是什么

Selenium是用来做web网站 UI自动化的测试工具/测试框架。

我们这里说的Selenium是Selenium2.0,它由Selenium IDE,Webdriver,

Selenium Grid组成。

Selenium IDE是用于Selenium测试的完成集成开发环境,可以直接录制在浏览器的用户操作,并且能够回访,编辑和调试测试脚本。测试过程中可以逐步进行或调整执行速度,并且在底部浏览日志出错信息。

Webdriver可以跳出JS的环境沙箱,针对不同的浏览器创建更加健壮的分布式的跨平台的自动化测试脚本,基于特定语言(Java,python,js…)绑定驱动浏览器对web元素进行操作和验证。

Webdriver的工作原理:

  1. 启动浏览器后,selenium会把目标浏览器绑定到特定的端口,启动后的浏览器作为webdriver的远程服务器。
  2. 客户端,这里就是测试脚本,借助ComandExcutor发送http请求给server端,会以webdriver协议规定的json格式字符串告诉selenium我们希望浏览器接下来做什么
  3. 服务器端需要依赖原生的浏览器组件,转化web service命令为浏览器native调用来完成操作。

selenium grid是一个服务器,提供对浏览器实例访问的服务器列表,管理各个节点的注册和状态信息,可以实现同一时刻执行不同的测试脚本。

关于脚本和脚本语言,脚本语言和面向对象语言:

脚本script 其实就是短小的、用来让计算机自动化完成一系列工作的程序,类似演戏时用到的剧本。

脚本一般会用脚本语言进行书写,其中常见的脚本语言有python,js。

常见用途就是用来书写自动化测试脚本,在公司肯呢个会用脚本来自动检查平台代码部署异常情况,拉去异常情况警报,备份文件,批量处理日志等。

前端大部分语言都可以认为是脚本语言,因为他们主要用于网页上执行动态操作和交互,脚本语言是一种通过解释器逐行解释执行的编程语言。但并非所有比如TypeScript,前端框架Vue等

后端语言脚本语言包括PHP,Python,JS等。

脚本语言和面向对象语言是两种不同的编程范式,脚本语言是一种解释型语言,面向对象语言是一种编译型语言,脚本语言语法更灵活,数据结构和抽象方式更灵活,但是执行效率相对较低

关于沙箱:

环境沙箱是一种安全机制,用于隔离和限制应用程序或代码的执行环境,减少对系统的潜在危害。

限制资源访问,隔离环境,控制权限,检测和记录。

环境沙箱主要应用与不可信任的代码执行环境,比如网络浏览器,插件等,可以帮助保护用户隐私和安全,减少恶意代码的风险,并提供更安全的应用程序运行环境。

2.Selenium特点

  1. 支持各种浏览器,只需要下载对应的浏览器驱动即可
  2. 支持各种语言(python,Java,JS…)
  3. 支持各种平台
  4. 拥有丰富的API

3.Selenium原理

执行自动化脚本代码,就等于创建一个HTTP请求,webdriver浏览器接受请求并解析,并把解析后的结果发送给浏览器,操作浏览器执行测试步骤。

浏览器执行之后会把结果返回给httpserver,最后结果返回给脚本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P2QjOrYP-1690779236968)(F:\typora插图\image-20230731125109826.png)]

4.Selenium+Java环境搭建(使用chrome浏览器)

1.下载chrome浏览器,并查看chrome浏览器版本

2.下载chrome浏览器驱动,只需要前两个数相同即可。点击电脑对应的版本进行下载。chrome浏览器驱动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yKUhpf9a-1690779236969)(F:\typora插图\image-20230731114903664.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BbAbC7qd-1690779236970)(F:\typora插图\image-20230731114919102.png)]

3.将压缩包解压,并放入java的文件夹下(已经给jdk配置过环境变量)

直接把exe放到java安装目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SysgIqOW-1690779236970)(F:\typora插图\image-20230731115516136.png)]

4.验证环境是否搭建成功

1.创建maven项目,向pom文件添加selenium依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NJoiS9TT-1690779236971)(F:\typora插图\image-20230731120730889.png)]

<dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency>
</dependencies>

注:这里是selenium3不是4

2.编写代码运行

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;public class Main {public static void main(String[] args) {WebDriver webDriver = new ChromeDriver();webDriver.get("https://www.baidu.com");}
}

看到下边两个效果即环境搭建完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jL2elA4M-1690779236971)(F:\typora插图\image-20230731123539005.png)]
其中这里的启动端口是不确定的在这里插入图片描述

常见问题及解决办法:

1.浏览器版本与驱动版本问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiAUxTle-1690779236972)(F:\typora插图\image-20230731122027654.png)]

原因:浏览器版本与驱动版本不匹配,重新在官网下载对应版本

2.selenium找不到Chrome.exe的安装路径

解决办法:检查chrome浏览器是否默认安装在C盘。若不在,则使用绝对路径。

ChromeDriver driver = new ChromeDriver("xxxxx);

因为我是安装在c盘下,所以不需要写绝对路径。

3.环境变量未配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q0OjDeck-1690779236972)(F:\typora插图\image-20230731123222200.png)]

解决办法:给jdk添加系统环境变量,并将驱动放入jdk的bin目录下


http://www.ppmy.cn/news/997591.html

相关文章

版本控制和团队协作:前端工程化的关键要素

文章目录 版本控制系统介绍&#xff08;如 Git&#xff09;1. 分布式系统2. 分支管理3. 版本控制4. 快速和高效5. 社区和生态系统 分支管理和团队协作流程1. 主分支2. 功能分支3. 开发工作4. 合并到develop5. 发布准备6. 发布 持续集成与持续部署实践持续集成&#xff08;CI&am…

前端构建(打包)工具发展史

大多同学的前端学习路线&#xff1a;三件套框架慢慢延伸到其他&#xff0c;在这个过程中&#xff0c;有一个词出现的频率很高&#xff1a;webpack 。 作为一个很出名的前端构建工具我们在网上随便一搜&#xff0c;就会有各种教程&#xff1a;loader plugin entry吧啦吧啦。 但…

Android 热修复

Android 热修复 本文链接&#xff1a;https://blog.csdn.net/feather_wch/article/details/132052856 文章目录 Android 热修复方案对比AndFixDeprecateRobust-即时生效Tinker-非及时生效 ClassLoader实战一手动打补丁包 热修复二 方案对比 AndFixDeprecate 1、AndFix为什么…

【SAP MII学习】Day01--Overview, Security Services, and Workbench

1. Module 1: Overview 1.1 问题存在的原因 上图展示的是在工厂中IT的架构图&#xff0c;主要分为一下的三个层次&#xff1a; Shop Floor Automation and Control Systems (SFAC):collect data from the PLCs and sensors that are connected to the machinery on the facto…

【二进制安全】堆漏洞:Double Free原理

参考&#xff1a;https://www.anquanke.com/post/id/241598 次要参考&#xff1a;https://xz.aliyun.com/t/6342 malloc_chunk 的源码如下&#xff1a; struct malloc_chunk { INTERNAL_SIZE_T prev_size; /*前一个chunk的大小*/ INTERNAL_SIZE_T size; /*当前chunk的…

【C++】文件操作(囊括特殊情况:读文件遇到的空格被跳过、“文件只读一次“)

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】文件操作&#xff08;囊括特殊情况&#xff1a;读文件遇到的空格被跳过、“文件只读一次”&#xff09; website&#xff1a;黑马程序员C date&#xff1a;2023年7月31日 目录 文本文件 写文件 源…

tinkerCAD案例:31. 3D 基元形状简介

tinkerCAD案例&#xff1a;31. 3D 基元形状简介 1 将一个想法从头脑带到现实世界是一次令人兴奋的冒险。在 Tinkercad 中&#xff0c;这将从一个新的设计开始。 在新设计中&#xff0c;简单的原始形状可以通过不同的方式组合成更复杂的形状。 在这个项目中&#xff0c;你将探索…

CSS font-family 等宽字体

CSS font-family 等宽字体 font-family: "Lucida Console", Consolas, "Courier New", Courier, monospace; font-family: Courier New, Courier, Lucida Console, Consolas, monospace; font-family: Courier, Lucida Console, Consolas, Courier New,…