UI自动化环境的搭建(python+pycharm+selenium+chrome)

news2024/11/26 16:33:26

最近在做一些UI自动化的项目,为此从环境搭建来从0到1,希望能够帮助到你,同时也是自我的梳理。将按照如下进行开展:
1、python的下载、安装,python环境变量的配置。
2、pycharm开发工具的下载安装。
3、selenium的安装。
4、chrome的选择。
一、python的下载。
1、去python官网:(个人建议用新不用旧,遇到问题再解决【主要是一些版本兼容性的问题】)
https://www.python.org/
下载最新版本:
在这里插入图片描述
或者下载自己想下载的版本:
在这里插入图片描述
下载完成后:以管理员方式运行python可执行文件(***.exe),弹出界面如下:
一般都是自定义安装和勾选自动配置环境变量。
在这里插入图片描述
1、自定义目录安装,那么就要先去新建一个文件夹来等着被选择安装到该文件夹下,文件夹的命名方式最好用英文/拼音名称。
2、如果不想自动配置环境变量,手动配置环境变量如下:我的电脑-鼠标右键选择-【属性】
在这里插入图片描述
下一步:
在这里插入图片描述
在系统环境变量中找到path,然后进入编辑页面:
在这里插入图片描述
在这里插入图片描述
这是直接把全部的路径写在PATH里面了,也可以单独新建一个系统环境变量
在这里插入图片描述
如变量名为:python_home
变量值为python的安装根目录。(我的python是自定义安装在D:\soft\python\下

在这里插入图片描述
然后进入PATH,新建环境变量:
%python_home%
%python_home%\Scripts
在这里插入图片描述
验证自己的环境变量是否已经配置好:
进入任意windows下的目录下,在文件路径,键入cmd+回车:
在这里插入图片描述
然后输入python+回车就可以看到python编辑页面了,说明python的环境变量配置成功了。(说明你只要在windows下的任何一个地方都可以使用python的命令,和运行python文件。)(本人之前安装过3.10版本,此处就不演示了。)

在这里插入图片描述

二、pycharm开发工具的下载安装。
1、进入官网下载:
https://www.jetbrains.com.cn/en-us/pycharm/,有正版的授权码可以安装专业版本(PyCharm Professional),如果没有就白嫖安装社区版本(PyCharm Community Edition)。
在这里插入图片描述
下载位社区版本:

为了演示和记录,我把之前的安装的也一起卸载了:
在这里插入图片描述
找到下载的文件,鼠标右键-管理员身份运行。
![在这里插入图片描述](https://img-blog.csdnimg.cn/b4f03869b1be40efad8e94d46037b558.png

在这里插入图片描述
next:
在这里插入图片描述
next:
在这里插入图片描述
next:
在这里插入图片描述
next:
在这里插入图片描述
install 此时才是开始安装,点击Install
在这里插入图片描述
安装完成后:
在这里插入图片描述
重启电脑。
打开pyacharm:
在这里插入图片描述
在这里插入图片描述
一般没有项目的就自己新建自己的项目:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、安装selenium
pip install selenium
如果要下载对应的版本,可以pip install selenium==4.1.2
在这里插入图片描述
在这里插入图片描述
(更新pip 的命令:python.exe -m pip install --upgrade pip)
在这里插入图片描述

在这里插入图片描述

4、解决闪退的问题:浏览器和驱动不兼容。
此时查看selenium的版本:一般pip install selenium 是按照最新的版本
在这里插入图片描述
谷歌浏览器的版本:浏览器-设置-关于谷歌浏览器:
在这里插入图片描述
进入selenium的官网:https://www.selenium.dev/zh-cn/

在这里插入图片描述
downloads,stable稳定版:
在这里插入图片描述
进入地址:https://pypi.org/project/selenium/,找自己谷歌浏览器的驱动
在这里插入图片描述
https://chromedriver.chromium.org/downloads,我的是115和64位的谷歌浏览器。
在这里插入图片描述
https://googlechromelabs.github.io/chrome-for-testing/,下载自己的谷歌浏览器的驱动版本和对应64位。
在这里插入图片描述
选择64位的webdriver驱动的地址下载:https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.170/win64/chromedriver-win64.zip
下载后解压出来
在这里插入图片描述
方式一:驱动放在自己的项目下面
在这里插入图片描述
方式二:谷歌驱动放在了自己的python安装目录下面
在这里插入图片描述
方式三:可以自定义放在自己的其他目录:
但是代码要修改一下:
driver = webdriver.Chrome(),括号里面要指定驱动的位置即可。

此时浏览器还是出现闪退,其实是因为selenium的版本过高。
先卸载pip uninstall selenium 再重新安装pip install selenium==4.5.0

在这里插入图片描述
这样就不会闪退了:(感兴趣的可以去尝试selenium4.11.2的下面还有最逼近的版本兼容)
在这里插入图片描述

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

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

相关文章

【Java】一只小菜坤的编程题之旅【3】

文章目录 1丶判定是否互为字符重排2、杨辉三角3丶某公司的1个面试题(字符串包含问题) 1丶判定是否互为字符重排 这个题我们用一个非常简单的思想就能实现,我们先将字符串转换为字符数组,然后对字符数组进行排序,然后再…

Codeforces Round 893 (Div. 2)ABC

Codeforces Round 892 (Div. 2) 目录 A. United We Stand题目大意思路代码 B. Olya and Game with Arrays题目大意思路代码 C. Another Permutation Problem题目大意思路代码 A. United We Stand 题目大意 给你一个数组,把这个数组分成两个数组a和b,使…

03_013内存分配api以及页表详解

前言 之前文章中物理ram中的最小单位一直用页来表示 这次又描述的详细了点 物理ram的最小单位 有的地方叫 块,框,页帧 在虚拟空间中最小单位也叫页 需要好好区分 不过后来想想管你虚拟页还是物理ram页 都存在物理ram上 都能想成一 一对应的关系 所以大家都叫页好像也行 内存分…

【Unity3D】Shader Graph节点

1 前言 Shader Graph 16.0.3 中有 208 个 Node(节点),本文梳理了 Shader Graph 中大部分 Node 的释义,官方介绍详见→Node-Library。 Shader Graph 通过图像的形式表达了顶点变换和片元着色流程,其背后都是一些列的数学…

保持城市天际线(力扣)贪心 JAVA

给你一座由 n x n 个街区组成的城市,每个街区都包含一座立方体建筑。给你一个下标从 0 开始的 n x n 整数矩阵 grid ,其中 grid[r][c] 表示坐落于 r 行 c 列的建筑物的 高度 。 城市的 天际线 是从远处观察城市时,所有建筑物形成的外部轮廓。…

【系统架构】分布式系统架构设计

1 分布式系统是什么 分布式系统是指由多个计算机节点组成的一个系统,这些节点通过网络互相连接,并协同工作完成某个任务。 与单个计算机相比,分布式系统具有更高的可扩展性、可靠性和性能等优势,因此广泛应用于大规模数据处理、高…

大数据-玩转数据-Flink 自定义Sink(Mysql)

一、说明 如果Flink没有提供给我们可以直接使用的连接器,那我们如果想将数据存储到我们自己的存储设备中,mysql 的安装使用请参考 mysql-玩转数据-centos7下mysql的安装 创建表 CREATE TABLE sensor (id int(10) ) ENGINEInnoDB DEFAULT CHARSETutf8二…

使用日志来监控应用

根据提取规则运行的位置可以分为两类做法,一个是在中心端,一个是在日志端。 中心端就是把要处理的所有机器的日志都统一传到中心,比如通过 Kafka 传输,最终落到 Elasticsearch,指标提取规则可以作为流计算任务插到 Ka…

3.解构赋值

解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值。 3.1数组解构 数组解构是 将数组的单元值快速批量赋值给一系列变量 的简洁语法 1.基本语法: (1)赋值运算符左侧的[ ]用于批量声明变量,右侧数组的单元值将被赋…

免费开源的多种人工智能项目,比如:训练一个模型,让人工智能玩王者荣耀

免费开源的多种人工智能项目,比如:训练一个模型,让人工智能玩王者荣耀。 全文大纲 PULSE - 该开源项目可以通过给图片增加像素点来实现去马赛克或高清化。 Depix - 给打了马赛克的文字去码。 TecoGAN - 给视频去马赛克或者进行超分辨率。 Sk…

python -- 函数闭包

1. LEGB规则 L: local 是局部作用域 E: Enclosed 是嵌套函数的外层函数作用域 G: Global 全局作用域 B:Build-In 内置作用域 变量的使用权重:局部变量 > 外层作用域变量 > 全局变量 > 内置变量 下面代码执行后,x变量的值分别为多少&#xff1…

【JavaEE基础学习打卡03】Java EE 平台有哪些内容?

目录 前言一、Java EE平台说明二、Java EE平台容器及组件1.平台容器2.平台组件 三、JavaEE平台API服务1.API服务概览2.平台API 总结 前言 📜 本系列教程适用于Java Web初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不…

Opencv特征检测之ORB算法原理及应用详解

Opencv特征检测之ORB算法原理及应用详解 特征是图像信息的另一种数字表达形式。一组好的特征对于在指定 任务上的最终表现至关重要。视觉里程 (VO) 的主要问题是如何根据图像特征来估计相机运动。但是,整幅图像用来计算分析通常比较耗时&…

算法通过村第三关-数组基础笔记|爱不起的数组

文章目录 前言线性表的概念什么是线性表从语言实现的角度看从存储的角度看从访问限制的角度看从扩容的角度看数组的概念数组元素的特征 数组的基本操作数组的创建和初始化查找一个元素增加一个元素删除一个元素 总结 前言 提示:孩子们有时候挺伤人的,他…

两个数组的交集-C语言/Java

描述 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。&#xff08;1 < nums1.length, nums2.length < 1000&#xff0c;0 < nums1[i], nums2[i] < 1000&#xff09; 示例1 输入…

Linux源码剖析匿名共享内存shmem原理

如下问题如果都清楚了就不用看本文了&#xff1a; 1. shmem ram文件系统的初始化流程是怎样的 2. shmem思想上想复用基于文件的操作流程&#xff0c;实现上shmem也引入了一个文件&#xff0c;那么类似文件open会生成struct file&#xff0c;shmem的struct file怎么生成的 3.…

C语言 棱形图案

目录 一、问题分析 上部分&#xff1a; 下部分&#xff1a; 二、代码演示 一、问题分析 如上图所示&#xff0c;我们可以将棱形进行拆解&#xff0c;分为上下两个部分。 上部分&#xff1a; 通过观察&#xff0c;我们得到 单边空格数 上半部分总行数 - 行数 - 1 …

graphab 教程 ——安装

graphab 软件致力于从图论的框架对生态网络进行建模。Graphab是基于图论原理建立生态网络模型的软件,它可以实现景观组分可视化、连通性分析等,且易于与地理信息系统兼容。Graphab 是基于Java平台开发的,可直接在 Windows、Linux,Mac等操作系统中运行,界面友好且易于使用。Grap…

HCIP学习--BGP实验

一、实验拓扑 二、实验需求 除R5的5.5.5.0环回外&#xff0c;其他所有的环回均可互相访问 三、实验步骤 首先配置IP&#xff0c;配置好IBGP 建立直连的EBGP邻居关系 R1和R2建立直连的EBGP邻居关系 [r1]bgp 1 [r1-bgp]router-id 1.1.1.1 [r1-bgp]peer 12.1.1.2 as-number …

MyBatis插件开发

目录 一、项目简单搭建二 、一个接口了、两大注解、四大对象三、脱敏插件开发 一、项目简单搭建 demo结构&#xff0c;已经搭建了无数次了&#xff0c;懒的粘贴了 o(╥﹏╥)o pom文件 <dependency><groupId>org.springframework.boot</groupId><artifa…