selenium 自动化测试 1-如何搭建自动化测试环境,搭建环境过程应该注意的问题

news2024/11/24 11:52:14

目录

前言:

1、selenium的介绍

2、selenium的版本介绍

3. selenium工作原理

4. selenium安装

4.1 安装selenium

4.2 安装浏览器驱动

4.3 安装浏览器

4.4 验证安装结果

5. 浏览器基本操作


前言:

搭建Selenium自动化测试环境是进行Web应用程序自动化测试的关键步骤。在进行搭建环境的过程中,有一些重要的问题需要注意。

最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,但是对于没有学过的人来说,通过资料再到自己写的代码,发现有些东西没有,有些方法又不相同,导致脚本不能运行,提醒我,看是否能花点时间,把selenium的内容好好梳理一下,从基础开始,到能够梳理出一个selenium的知识图谱更好。

整个内容可能不是一次能写完的,所以我打算分多次来写,如果各位看完后,有什么问题也可以发信息给我,我给大家解答一下,写这个也是为了方便在未来selenium还会有新的版本更新,以后也方便做个对比。
本次内容从一下几个方面来写吧:

  1. selenium的作用
  2. selenium版本的介绍
  3. selenium工作原理
  4. selenium安装
  5. 浏览器基本操作

1、selenium的介绍

Selenium是Thought Works公司开发的一套基于web应用的自动化测试工具,直接运行在浏览器中,模拟用户操作。它可以被用于单元测试、集成测试、回归测试、系统测试、冒烟测试、验收测试,并且可以运行在各种浏览器和操作系统上。
目前使用selenium的人群大概有两大类吧,一类是软件测试工程师,他们可以通过selenium来实现自动化的测试,以提高回归测试的效率,降低人员的执行成本。第二类可能就是很多写爬虫的人,因为现在网页端爬取数据的人有很多,服务端做了很多的反爬策略,及各种限制如动态加载等,单独的通过接口来爬取数据的难度和可行性有所降低,而selenium可以模拟人为的在页面上执行各种操作,那么各种反爬的手段可能对它来讲也就没有什么意义了,当然也有人说,还有各种验证码也会有影响,验证码的问题我们今天先不谈,后面我看是否可以单独出一篇对验证码处理的文章。

2、selenium的版本介绍

selenium从发布到至今经历了1、2、3、4个版本,截止目前发布的最新版本是4.7版本,版本跨度最大的其实是1.0版本到2.0版本,1.0版本中包含了ide、Grid、core和rc四大部分,2.0在1.0基础上加入了webdriver,webdriver提供了更为简单的编程接口,弥补了1.0中Selenium-RC的一些不足和限制,对外提供了更简洁的restfull的API接口。

selenium1.0的主要内容:

  1. DE:可以通过IDE完成测试过程的录制和回放。主要用来给初学者了解selenium,但不适合直接作为日常自动化的测试。
  2. Grid:是selenium部署、测试及执行(分布式测试用例执行)。
  3. RC:selenium Remote Control,一个代理与控制器。
  4. Core:selenium的测试机制核心部分,包含测试用例集的执行,断言,由js代码组成,支持夸平台运行。

selenium2.0 = selenium1.0 + webdriver

3. selenium工作原理

3.1、客户端(selenium支持多种编程语言,所以客户端的请求可以使用各种语言来调用接口),selenium 通过调用WeDriver类的start方法去启动浏览器驱动,创建服务的启动。
3.2、通过服务端返回的session id,在下一次请求时,携带这个id,将客户端要执行的操作发送给服务端,服务端解析用户发送请求中的操作,并将操作指令发送给浏览器去执行。
3.3、浏览器执行客户端操作,并将操作的结果返回给服务端,服务端将执行结果进行封装,并返回给客户端。
客户端在启动服务端时,服务端会启动一个9515的端口用来与客户端连接,客户端调用selenium提供的方法,在由selenium将请求转化为对应的操作接口指令,根据操作指令调用对应的API接口,通过API接口调用将用户操作发送给浏览器端去执行。

这部分的内容需要在后续的过程中,解析代码来理解他的原理和过程。

4. selenium安装

安装selenium环境,这里以python 3.8的为例,安装完成python后,并且配置好python相关的环境变量,不懂的可以私信我。
需要安装的有:
1、selenium
2、浏览器驱动
3、浏览器

4.1 安装selenium

如果python环境已经安装完成,可以使用pip来安装selenium,在开始菜单中,输入cmd,打开dos窗口,执行下列命令

# 这里我选择安装的是selenium的4.0版本,有部分3.0的内容,在4.0中没有彻底删除,还可以使用,如果使用高版本,那变更的内容将不能再使用了
pip install selenium==4.0
# 或
pip3 install selenium==4.0
# 如果安装过程比较慢或者出现超时错误,则可以使用,我这里使用的是国内的清华源安装的,相对稳定点
pip3 install selenium==4.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

4.2 安装浏览器驱动

安装浏览器驱动,需要根据浏览器来决定,使用不同的浏览器,就需要选择不同的浏览器驱动,浏览器驱动也需要根据浏览器的版本来考虑,所以浏览器、浏览器版本要与浏览器驱动及驱动版本向对应。
1、Chrome(Google)浏览器
先确定自己浏览器的版本,在chrome浏览器中的帮助中,查看关于,上面会显示浏览器版本,或者直接在浏览器url地址上输入chrome://settings/help,下面这个是我浏览器的版本

根据版本号,在驱动下载页面中,找到对应的版本


因为我是window的系统,所以我选择chromedriver_win32.zip,下载后,将里面的chromedriver.exe文件解压出来,其实放在哪无所谓,放的地方不同后面写代码时的处理会有所区别。一般建议放在path这个环境变量能访问到的位置,或者干脆放在python的安装目录下也行

2、Firefox(火狐)浏览器
采用同样的方式下载对应版本的geckodriver驱动,Firefox的版本和geckodriver的版本对应关系如下,也可以直接去官网查看,
 

3、Edge :Microsoft Edge WebDriver - Microsoft Edge Developer
首先也是要确定Edge的版本,然后根据版本到官网下载驱动

4.3 安装浏览器

这部分内容就不再赘述,给为可以直接到官网下载安装即可,这里给新手们提醒下,安装过程中,最好不要修改安装的路径。

4.4 验证安装结果

打开pycharm,编写如下代码,如果可以打开对应的浏览器,并且跳转到百度页面,则说明安装成功。这里以Chrome浏览器为例

# 导入webdriver库
from selenium import webdriver
# 启动chrome浏览器
driver = webdriver.Chrome()
# 打开百度页面
driver.get('https://www.baidu.com')

5. 浏览器基本操作

上面的代码中,已经说明了如何打开浏览器,并且跳转到指定的URL地址。下面说明下对浏览器的基本操作方法

#coding=utf-8
__author__ = 'Meteor'
from selenium import webdriver
from time import sleep
#打开一个Firefox浏览器
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
#等2秒
sleep(2)
#刷新
driver.refresh()

#等2秒
sleep(2)
#后退
driver.back()
#等2秒
sleep(2)
#前进
driver.forward()
#等2秒
sleep(2)
#最小化
driver.minimize_window()
#等2秒
sleep(2)
#最大化
driver.maximize_window()

#等2秒
sleep(2)
#关闭浏览器
driver.close()

除了上面的基本操作外,也可以通过Option类来配置浏览器的启动 

# 导入Option类
from selenium.webdriver.chrome.options import Options
# 实例化一个Option类的对象
options = Options()

# 通过Options对象的add_argument方法添加启动的配置
options.add_argument('--window-size=1366,768')  #--window-size=1366,768 表示设置浏览器的大小
# 启动浏览器,并将启动参数带入到浏览器中
driver = webdriver.Chrome(options=options)

Opetion类中的配置方式除了--window-size设置浏览器大小外,还有下面几种方式 

--user-agent="" 设置请求头的User-Agent
--window-size=1366,768 设置浏览器分辨率(窗口大小)
--headless 无界面运行(无窗口)
--start-maximized 最大化运行(全屏窗口)
--incognito 隐身模式(无痕模式)
--disable-javascript 禁用javascript
--disable-infobars 禁用浏览器正在被自动化程序控制的提示

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

 留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZzkQcmAe85ckaBPtQUptkVckU2U5XpZL&authKey=xMGxie22qtDJbjrdboxCpO7ZJxkuPAviYs6GiRb2B5T9YhJjlUGuFZSfoxQfWlyy&noverify=0&group_code=574737577

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703114.html

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

相关文章

京东到家小程序-在性能及多端能力的探索实践 | 京东云技术团队

一、前言 京东到家小程序最初只有微信小程序,随着业务的发展,同样的功能需要支持容器越来越多,包括支付宝小程序、京东小程序、到家APP、京东APP等,然而每个端分开实现要面临研发成本高、不一致等问题。 为了提高研发效率&#…

关于栈和队列的几个题

思维导图: 1.匹配括号 题目如下: 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以…

【灾报警主机联网问题】

火灾报警主机联网问题一直是各消防项目中的难点,特别是管廊等长距离通讯中,如何保证通讯信号长期稳定可靠的运行是需要工程重点解决的问题,而LCAN-FOBR系列环网冗余式CAN光纤转换器提供二路光通道和一路CAN通道,实现CAN与光纤之间…

基于ENVI的遥感影像的非监督分类

ENVI包括了ISODATA和K-Mean两种非监督分类方法。 ISODATA(Iterative Self-Orgnizing Data Analysize Technique)是一种重复自组织数据分析技术,计算数据空间中均匀分布的类均值,然后用最小距离技术将剩余像元进行迭代聚合&#x…

常见分子直径

He 0.26 H2 0.289 NO 0.317 CO2 0.33 Ar 0.34 O2 0.346 N2 0.364 CO 0.376 CH4 0.38 C2H4 0.39 Xe 0.396 C3H8 0.43 SO2 0.28 气体分子 分子直径/nm 水0.27~0.32 氨0.365~0.38 苯0.65~0.68 乙烷0.40~0.47 乙烯…

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

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

项目——学生信息管理系统5

目录 教师模块功能的实现 创建一个 Teacher 实体类 创建 添加老师界面 AddTeacherFrm 注意创建成 JInternalFrame 类型 页面的制作 给添加按钮绑定事件 提供一个重置表单功能 回到 MainFrm 添加教师管理的按钮 给添加教师按钮绑定事件 测试添加教师功能 创建教师信息管…

Day8——操作系统基础windows

文章目录 操作系统基础操作系统的定义 什么是windows 操作系统基础 操作系统的定义 什么是windows

gin RouterGroup 方法概览

路由组 RouterGroup是gin 里面的路由组,主要作用是实现gin的路由。 RouterGroup是嵌套在了Engine内部,实际上调用Engine的get,post等方式就是RouterGroup的实现。 另外RouterGroup还实现了如下两个接口: Engine相当于RouterGrou…

【Shell】自定义传入参数

授权 cd /Users/lion/Downloads/shell-test-demos chmod ux *.sh#!/bin/bashprintHelp() {echo "-p pic (required) path for pic"exit 1 }while getopts p:h OPT; docase $OPT inp) path"$OPTARG" ;;esac done# check api_key exists if [ -z "$pat…

多元回归预测 | Matlab海洋捕食者算法(MPA)优化极限学习机ELM回归预测,MPA-ELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab海洋捕食者算法(MPA)优化极限学习机ELM回归预测,MPA-ELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% …

计算机中丢失api-ms-win-core-path-l1-1-0dll

使用python自带工具打包exe文件夹时出现的错误。win10的exe文件放到win7上跑不出来。 本着找到这个dll文件放进去,但同事的win10打包的程序就可以放到win7上运行,所以改了python环境,把虚拟环境python版本改成了3.8,原来用的3.9不…

FFmpeg ~ 安装(附MetaRTC整合)

前言 本文会讲述FFmpeg下载/配置/编译/安装的完整流程,该流程并不复杂,因此本文的重点在于如何整合MetaRTC。MetaRTC的作用是令FFmpeg支持WebRTC推/拉流及回声消除功能(常规版本的FFmpeg是不支持该功能的),使得WebRTC音…

【万字长文】AMD Instinct MI300详细解析:超微半导体的光辉时刻

美国时间6月13日,AMD在美国加利福尼亚州旧金山举行了一场名为“数据中心与AI技术首演”的活动,并在主题演讲中介绍了数据中心的解决方案。 其中,宣布推出“AMD Instinct MI300系列加速器”(以下简称Instinct MI300系列&#xff0…

MidJourney v5.2 、Stable Diffusion XL 0.9 出图对比

最近两个最流行的AI图像生成器,Midjourney和Stable Diffusion,都发布了重大更新。Midjourney v5.2引入了许多新功能,包括“缩小”功能、“/缩短”命令、改进的图像质量等。 Stable Diffusion XL (SDXL) 0.9则专注于改善图像质量和构图。新模…

经典文献阅读之--R-PCC(基于距离图像的点云压缩方法)

0. 简介 对于激光雷达数据而言,虽然与2D图像相比,可以提供精确的物体深度信息,但也存在数据量大的问题,不便于数据存储或传输。在拿到离线数据分析的时候会发现我们很难拿到较长一段时间的激光数据,这就给我们问题的重…

抖音最新版本抓包

1.下载fiddler抓包工具 2.配置https抓包环境 3.抓包工具配置好了之后,我们确保手机和电脑在同一个局域网中 4.打电脑CMD 输入 ipconfig 查看电脑的ip地址 5.打开我们的手机设置代理 6.打开浏览器 输入:你的电脑ip:8888 下载证书 7.打开Re文件管理器(ps…

原来,绩效管理还能这么玩

早上好,我是老原。 最近,有个粉丝朋友来找我请教:他最近加入另外一家大型互联网公司,主要是负责领导力相关这块。他们现在也在做OKR实践,但是碰到了很多问题。 对此我并不觉得意外,因为这样的案例太多了。…

ModaHub魔搭社区:GPTCache的工作原理和为什么选择 GPTCache?

什么是 GPTCache? GPTCache 是一个开源工具,旨在通过实现缓存来提高基于 GPT 的应用程序的效率和速度,以存储语言模型生成的响应。GPTCache 允许用户根据其需求自定义缓存,包括嵌入函数、相似度评估函数、存储位置和驱逐等选项。…

《Opencv3编程入门》学习笔记—第十一章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第十一章 特征检测与匹配 一、SURF特征点检测 太复杂了!全是公式! (一)SURF算法概览 SURF,SpeededUp Rebus…