Selenium+Python自动化测试环境搭建

1. 什么是Selenium

        Selenium主要用于web应用程序的自动化测试,但并不局限于此,它还支持所有基于web的管理任务自动化。

2、selenium 自动化流程如下:

  1. 自动化程序调用Selenium 客户端库函数(比如点击按钮元素)
  2. 客户端库会发送Selenium 命令 给浏览器的驱动程序
  3. 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令
  4. 浏览器执行命令
  5. 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序
  6. 自动化程序对返回结果进行处理

 

3、Selenium环境的安装主要就是安装两样东西: 客户端库 和 浏览器驱动

1)安装客户端命令

        使用快捷键win+r输入cmd打开命令行程序

        输入命令:

pip install selenium

可能会遇到的问题

        1. 版本太低   

        使用命令查看pip版本,命令:

pip -V

        2. 升级命令:python -m pip install --upgrade pip

        3. 验证升级成功,再次使用pip show pip命令查看pip版本。

pip show pip

         4. 输入下面语句修复pip

python -m ensurepip

        5. 然后再升级pip版本

2)安装浏览器驱动

        浏览器驱动 是和 浏览器对应的。 不同的浏览器 需要选择不同的浏览器驱动。目前主流的浏览器中,谷歌 Chrome 浏览器对 Selenium自动化的支持更加成熟一些。

        推荐大家使用 Chrome浏览器 。

  1. 用命令chrome://version查看谷歌版本
  2. 下载浏览器驱动,浏览器驱动必须和浏览器版本匹配

         比如:当前Chrome浏览器版本是105, 通常就需要下载105开头的目录里面的驱动程序 。

        注意:驱动和浏览器的版本号越接近越好,但是略有差别,通常也没有什么问题。

        注意:兄弟们,下载chromedriver_win32.zip,并解压放到Chrome谷歌的安装目录下,默认安装目录为:C:\Program Files\Google\Chrome\Application\

实现一个简单的自动化脚本

1、打开PyCharm,编写以下脚本
from selenium import webdriver    # 导入webdriver包
from selenium.webdriver.chrome.service import Service
# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe')) 
# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址 
wd.get('https://www.baidu.com')
2、省略浏览器驱动路径

        前面,我们的代码创建 WebDriver对象时,需要指定浏览器驱动路径,比如

from selenium.webdriver.chrome.service import Service
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

        将浏览器驱动所在目录加入环境变量Path, 写代码时,就可以无需指定浏览器驱动路径了,像下面这样

wd = webdriver.Chrome()

        因为,Selenium会自动在环境变量 Path 指定的那些目录里查找名为chromedriver.exe 的文件。

      一定要注意的是,加入环境变量 Path 的,不是浏览器驱动全路径,比如 C:\Program Files\Google\Chrome\Application\chromedriver.exe

        而是 浏览器驱动所在目录,比如 C:\Program Files\Google\Chrome\Application

        注意:配置环境变量后,记得重启

        注意:若导包错误,安装了selenium库,可是在导入的时候,仍然提示selenium库不存在。

        这种情况可能使Pycharm中Project Interpreter环境问题

        通过file->setting进入修改,如下图对应位置,点击左边的+好,将其指向本机的python环境即可

         其中,下面这行代码,就会运行浏览器驱动,并且运行Chrome浏览器

wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

        注意,等号右边 返回的是 WebDriver 类型的对象,我们可以通过这个对象来操控浏览器,比如 打开网址、选择界面元素等。
        而下面这行代码,就是使用 WebDriver 的 get 方法 打开网址 百度

wd.get('https://www.baidu.com')

        执行上面这行代码时,自动化程序就发起了 打开百度网址的 请求消息 ,通过浏览器驱动, 给 Chrome浏览器。

        Chome浏览器接收到该请求后,就会打开百度网址,通过浏览器驱动, 告诉自动化程序 打开成功。

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

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

相关文章

【计算机组成原理】六、总线:3.操作和定时

5.操作和定时 文章目录 5.操作和定时5.1总线传输的四个阶段5.2总线定时5.2.1同步通信5.2.2异步通信5.2.3半同步通信5.2.4分离式通信 2.3按时序控制方式 同步总线异步总线 5.1总线传输的四个阶段 总线周期: 申请分配阶段:由需要使用总线的主模块&#…

计算机组成原理:实验一运算器组成实验

一、实验目的 1.掌握算术逻辑运算加、减、乘、与的工作原理。 2.熟悉简单运算器的数据传送通路。 3.验证实验台运算器的8位加、减、与、直通功能。 4.验证实验台的4位乘4位功能。 5.按给定数据,完成几种指定的算术和逻辑运算。 二、实验电路 图1.1 运算器数据…

约瑟夫环和一元多项式

约瑟夫环 一、问题描述 假设有 n 个人围成一圈,从第一个人开始报数,报数到 m 的人将被淘汰出圈,然后从下一个人开始继续从 1 报数,如此重复,直到最后只剩下一个人。求最后剩下的这个人的编号。 二、问题分析 可…

DDR3详解

1.DDR3简介 DDR3 SDRAM,全称第三代双倍速率同步动态随机存取存储器,简称 DDR3,双倍速率(double-data-rate),是指时钟的上升沿和下降沿都发生数据传输;同步,是指DDR3数据的读取写入是…

使用 nuxi build-module 命令构建 Nuxt 模块

title: 使用 nuxi build-module 命令构建 Nuxt 模块 date: 2024/8/31 updated: 2024/8/31 author: cmdragon excerpt: nuxi build-module 命令是构建 Nuxt 模块的核心工具,它将你的模块打包成适合生产环境的格式。通过使用 --stub 选项,你可以在开发过程中加快模块构建速度…

linux Vim的安装和基本使用

Vim 什么是 Vim Vim是一个高度可定制的文本编辑器,源自Unix系统的vi编辑器。它被广泛用于类Unix系统中,包括Linux、Mac OS和Windows平台。Vim特别受到程序员的青睐,因为它提供了丰富的编程功能,如代码补全、编译及错误跳转等。这…

Kubernetes 上安装 Jenkins

安装 Helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash添加 Jenkins Helm 仓库 首先添加 Jenkins Helm 仓库 helm repo add jenkins https://charts.jenkins.io helm repo update安装 Jenkins 使用 Helm 安装 Jenkins 的最新版本&…

产品经理角度分析:朋友圈点赞与评论仅共同好友可见

你有没有在刷朋友圈时,看到某位朋友发了条状态,下面一堆点赞和评论,然后他自己来个“统一回复下,感谢大家”? 这种现象就像是在朋友圈里开了个小型新闻发布会,大家在台下疯狂举手,结果发言人最后…

ip地址变化是什么意思?手机地址ip一直变化怎么办

IP地址作为互联网设备的唯一标识,‌其稳定性对于网络连接至关重要。‌然而,‌手机IP地址频繁变动可能带来一系列问题。‌本文将深入探讨IP地址变化的含义、‌IP地址频繁变动的原因,‌以及提供手机地址IP一直变化的有效应对策略。‌ 一、IP地址…

使用pgdump、pgrestore迁移数据表到docker部署的postgis

将本地数据同步到内网服务器,使用的postgis,表含空间字段 备份 本地使用pgadmin 4进行备份,pgrestore的命令参数找起来麻烦,这个可以界面操作,比较方便 说明 说明的截图来自pgadmin,点击这个打开 …

GitLab私有代码仓库搭建与使用

文章目录 一、安装GitLab1、下载安装2、修改配置3、启动gitlab4、登录 二、使用1、ssh-key 参考资料 一、安装GitLab 1、下载安装 gitlab-ce的rpm包清华源地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/?CN&OD 本次使用gitlab-ce-17.1.1-c…

论文精读:JACS —— Sb2Si2Te6与Sc2Si2Te6热电性能

摘要节选: 本文以层状Sb2Si2Te6和Sc2Si2Te6为模型体系,采用密度泛函理论结合半经典玻尔兹曼输运理论,全面研究和比较了它们的热电性能。 由于较低的散射率和更明显的带色散,Sb2Si2Te6与Sc2Si2Te6相比具有优越的导电性。 在将导带轨道特性从…

【微信小程序】SpringBoot集成微信小程序(多小程序集成)

SpringBoot集成微信小程序 前言一、前置工作1、获取appId和appSecret核心参数 二、SpringBoot集成微信小程序1、引入pom依赖2、yml配置3、java代码文件3.1、Properties 配置类3.2 Configuration 服务类 4、使用示例4.1、获取登录后的session信息:openId4.2、获取当前…

若依框架 MyBatis 改为 MyBatis-Plus 的实现步骤

本文只做了简单的实现,具体的细节需根据自己的需求进一步实现。如果实现中遇到问题欢迎留言讨论。 引入 MyBatis-Plus 引入相关依赖(pom.xml) 推荐先直接在顶级 pom.xml 中直接依赖,等调试通过之后,在去按需依赖&…

理解进程与线程

1.1理解分时技术 随着计算器处理能力的逐步提高,计算机处理多道程序成为了可能。 所谓分时技术,就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器给各程序使用。这样在时间线上表现为线性,但是在体感上感觉是一起执…

Java:时区的用法

文章目录 ZoneId常见用法 ZonedDateTime常见方法 代码 黑马学习笔记 ZoneId 常见用法 ZonedDateTime 常见方法 代码 package NewTime;import java.time.Clock; import java.time.ZoneId; import java.time.ZonedDateTime;/*** Author: ggdpzhk* CreateTime: 2024-08-31*/ pu…

后台框架-统一数据格式2

在上一篇中,当在Controller类中需要返回统一格式的数据时,需要实例化一个R,有时候觉得还是不够简洁,那有没有一种方法Controller中直接返回对象,但是返回的对象统一保存到如下格式的data中? ResponseBody…

YASKAWA机器人维修操作命令攻略-移动命令运用案例

移动命令 1. MOVJ 命令运用案例: MOVJ VJ50.00 PL2 NWAIT UNTIL IN(1)ON 含义:在这个点以关节坐标,按 50.00%的再现速度,定位精度为 2,同时执行下一条非移动 指令,判断输入信号 1 为 on 后,执行…

【Python机器学习】NLP词频背后的含义——距离和相似度

我们可以使用相似度评分(和距离),根据两篇文档的表示向量间的相似度(或距离)来判断文档间有多相似。 我们可以使用相似度评分(和举例)来查看LSA主题模型与高维TF-IDF模型之间的一致性。在去掉了…

Windows中pip换源

step1:检查是否安装 输入如下,出现版本号,就是安装好了 pip -V或pip --version pip3 -V pip3 --version step2:找到(创建)配置文件 对于 Windows 用户,配置文件在【%APPDATA%\pip\pip.ini】文…