[自动化测试:Selenium]:环境部署和Webdriver的使用
文章目录
- 修改安装源
- 打开Python Packages。
- 点击梅花按钮。
- 在弹出的对话框中,填入Name(随便填),Repository URL,选择下列的源,一般先选择清华源
- 按OK确认。
- 配置完成
- 安装selenium
- File→Settings→Project:STEST1→Python Interperter→点“+”→在新框中输入selenium。
- 在下面搜索出来的一些列结果中,选择selenium,注意,可能有多个selenium,选择你想要的URL路径,这里我们选择的是清华源的路径,看图示。
- 按Install Package,慢慢等待安装成功。
- 安装浏览器驱动-Chrome
- 安装Chrome浏览器。https://www.google.cn/chrome/index.html,去官网下载最新版本。
- 下载对应的驱动
- 进入下载文件夹,根据自己的需要下载对应版本的驱动。
- 配置环境变量
- 测试Chrome
- 打开Pycharm,新建main.py,按如下输入:
- press the green button in the gutter to run the script
- 记录问题
- 解决
- 执行
- 最后生效
- 安装浏览器驱动-Firefox
- 安装Firefox浏览器。https://www.firefox.com.cn/
- 下载对应的驱动
- 测试Firefox
- 在Firefox中安装Selenium IDE
- 点击进入,选择添加到Firefox
- 勾选允许此扩展在隐私窗口中运行。(可以不勾选,但目前不清楚会产生什么问题,还是勾选)
- 此时在Firefox右上角出现Selenium IDE图标。
修改安装源
打开Python Packages。
点击梅花按钮。
在弹出的对话框中,填入Name(随便填),Repository URL,选择下列的源,一般先选择清华源
国内源列表(一般是清华源比较好)
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple/
本来的源:https://pypi.org/simple
按OK确认。

配置完成

安装selenium
File→Settings→Project:STEST1→Python Interperter→点“+”→在新框中输入selenium。
在下面搜索出来的一些列结果中,选择selenium,注意,可能有多个selenium,选择你想要的URL路径,这里我们选择的是清华源的路径,看图示。
按Install Package,慢慢等待安装成功。



安装浏览器驱动-Chrome
安装Chrome浏览器。https://www.google.cn/chrome/index.html,去官网下载最新版本。
按照一下步骤查看版本号

下载对应的驱动
网址:https://googlechromelabs.github.io/chrome-for-testing/。
选择与版本号最接近的驱动下载。
复制下载链接到浏览器上触发下载
https://storage.googleapis.com/chrome-for-testing-public/130.0.6723.58/win64/chrome-headless-shell-win64.zip

进入下载文件夹,根据自己的需要下载对应版本的驱动。
解压下载的文件。
将chromedriver.exe拷贝至Chrome所在文件夹:C:\Program Files\Google\Chrome\Application。注意:可能在Program Files(X86)文件夹。
设置环境变量
在系统搜索框中输入“环境变量”,打开编辑系统环境变量界面,按照以下步骤,在系统环境变量的Path项目里添加chromedriver.exe所在目录。
拷贝到文件目录上方:C:\Program Files\Google\Chrome\Application
将下载的文件拷贝:


配置环境变量

测试Chrome
打开Pycharm,新建main.py,按如下输入:
from selenium import webdriver
import timedef test():driver = webdriver.Chrome()driver.get("https://www.shou.org.cn/")time.sleep(2)driver.quit()
press the green button in the gutter to run the script
if name == ‘main’:
test()
正常效果:打开开大页面,2s后自动关闭。
若出现如下错误,则由于Pycharm未更新上一步设置的环境变量所造成。关闭Pycharm后再重新打开即可。

记录问题
Traceback (most recent call last):
File “E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest\env-selenium\main.py”, line 1, in
from selenium import webdriver
File “E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest.venv\lib\site-packages\selenium\webdriver_init_.py”, line 20, in
from .chrome.webdriver import WebDriver as Chrome # noqa
File “E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest.venv\lib\site-packages\selenium\webdriver\chrome\webdriver.py”, line 18, in
from selenium.webdriver.chromium.webdriver import ChromiumDriver
File “E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest.venv\lib\site-packages\selenium\webdriver\chromium\webdriver.py”, line 18, in
from selenium.webdriver.chromium.remote_connection import ChromiumRemoteConnection
File “E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest.venv\lib\site-packages\selenium\webdriver\chromium\remote_connection.py”, line 18, in
from selenium.webdriver.remote.remote_connection import RemoteConnection
File “E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest.venv\lib\site-packages\selenium\webdriver\remote\remote_connection.py”, line 27, in
import urllib3
File “E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest.venv\lib\site-packages\urllib3_init_.py”, line 42, in
"urllib3 v2.0 only supports OpenSSL 1.1.1+, currently "
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘OpenSSL 1.1.0h 27 Mar 2018’. See: https://github.com/urllib3/urllib3/issues/2168
Process finished with exit code 1
解决
这个错误信息表明你的Python环境中安装的urllib3库版本2.0需要OpenSSL 1.1.1或更高版本,但是当前Python的ssl模块是使用OpenSSL 1.1.0h版本编译的。这导致了不兼容的问题。
要解决这个问题,你可以采取以下几种方法之一:
升级OpenSSL:
如果你有权限和能力在你的系统上升级OpenSSL库,并且确保Python重新编译以使用新的OpenSSL版本,这将是解决这个问题的最直接方法。这通常涉及到安装新版本的OpenSSL,然后重新编译Python以确保它链接到新的库。
降级urllib3:
如果升级OpenSSL不可行或太复杂,你可以考虑降级urllib3到一个与你的OpenSSL版本兼容的版本。你可以使用pip来降级:
bash
pip install “urllib3<2.0”
这将安装一个低于2.0版本的urllib3,该版本应该与你的OpenSSL 1.1.0h兼容。
使用虚拟环境:
如果你不想在系统级别更改OpenSSL或urllib3,你可以创建一个新的Python虚拟环境,并在其中安装一个与当前系统OpenSSL版本兼容的urllib3版本。使用venv或conda创建新环境,并在其中安装所需的库版本。
检查系统依赖:
确保你的操作系统和所有相关的库都是最新的,有时候操作系统更新会包含对OpenSSL的更新。
查看错误链接:
错误信息中提供了一个链接(https://github.com/urllib3/urllib3/issues/2168),你可以访问这个链接查看是否有其他用户遇到类似问题以及他们是如何解决的。
选择哪种方法取决于你的具体需求和系统配置。如果你不确定如何操作,可能需要寻求一个有经验的系统管理员或开发者的帮助。
执行
(.venv) PS E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest> pip install “urllib3<2.0”
Collecting urllib3<2.0
Obtaining dependency information for urllib3<2.0 from https://files.pythonhosted.org/packages/33/cf/8435d5a7159e2a9c83a95896ed596f68cf798005fe107cc655b5c5c14704/urllib3-1.26.20-py2.py3-none-any.whl.metadata
Downloading urllib3-1.26.20-py2.py3-none-any.whl.metadata (50 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.1/50.1 kB 169.6 kB/s eta 0:00:00
Downloading urllib3-1.26.20-py2.py3-none-any.whl (144 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.2/144.2 kB 119.1 kB/s eta 0:00:00
Installing collected packages: urllib3
Attempting uninstall: urllib3
Found existing installation: urllib3 2.0.7
Uninstalling urllib3-2.0.7:
Successfully uninstalled urllib3-2.0.7
Successfully installed urllib3-1.26.20
[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: python.exe -m pip install --upgrade pip
(.venv) PS E:\WorkContent\shanghaikaifangdaxue\pythontest\pythontest>
最后生效

安装浏览器驱动-Firefox
安装Firefox浏览器。https://www.firefox.com.cn/
下载对应的驱动
网址:https://github.com/mozilla/geckodriver/releases
翻到底部Assets处,点击Show all asets
测试Firefox
在Firefox中安装Selenium IDE
点击进入,选择添加到Firefox
勾选允许此扩展在隐私窗口中运行。(可以不勾选,但目前不清楚会产生什么问题,还是勾选)
此时在Firefox右上角出现Selenium IDE图标。
相关文章:
[自动化测试:Selenium]:环境部署和Webdriver的使用
文章目录 修改安装源打开Python Packages。点击梅花按钮。在弹出的对话框中,填入Name(随便填),Repository URL,选择下列的源,一般先选择清华源按OK确认。配置完成 安装seleniumFile→Settings→Project&…...
51单片机——OLED显示图片
取模软件:链接:https://pan.baidu.com/s/1UcrbS7nU4bsawNxsaaULfQ 提取码:gclc 1、如果图片大小和格式不合适,可以先用Img2Lcd软件进行调整图片大小,一般取模软件使用的是.bmp图片,可以进行输出.bmp格式。软件界面如下࿱…...
Gin 协程mysql客户端
一、Gin框架 mysql配置 这里选择yaml文件配置 二、配置读取 viper 读取yaml文件中对应配置 三、mysql 的协程客户端 文件位置 package databaseimport ("database/sql""fmt""github.com/spf13/viper""log""net/http"&quo…...
量子门电路开销——T门、clifford门、toffoli门、fredkin门
在量子计算中,T门的成本比Clifford门高出很多倍的原因与量子计算中纠错的实现、物理门操作的复杂性以及容错量子计算架构中的成本评估有关。以下是几个关键原因,解释了为什么 T 门的成本在量子计算中远远高于 Clifford 门: 1. T 门和 Cliffo…...
C++之《剑指offer》学习记录(1):类型转换关键字
笔者最近在找工作时,无意间读到了一本名为《剑指offer》的书,粗略翻阅了一下,感觉这将会是一本能让我不再苦恼于笔试和面试“手搓代码”的书。故笔者写下该系列博客记录自己的学习历程,希望能和这本书的读者朋友们一起交流学习心得…...
【Linux】平台设备驱动
在设备驱动模型中,引入总线的概念可以对驱动代码和设备信息进行分离。但是驱动中总线的概念是软件层面的一种抽象,与我们SOC中物理总线的概念并不严格相等。 物理总线:芯片与各个功能外设之间传送信息的公共通信干线,其中又包括数…...
【Linux】命令行参数环境变量
文章目录 命令行参数环境变量环境变量的概念常见环境变量查看环境变量测试PATH修改PATH HOME和环境变量相关的命令环境变量是如何被组织的通过系统调用putenv和getenv获取或设置环境变量环境变量通常是具有全局属性的普通变量与环境变量的区别 命令行参数 main函数有三种形式&…...
libaom 源码分析:twopass_encoder.c 文件
libaom libaom 是 AOMedia(开放媒体联盟)开发的一个开源视频编解码器库,它是 AV1 视频压缩格式的参考实现,并被广泛用于多种生产系统中。libaom 支持多种功能,包括可扩展视频编码(SVC)、实时通信…...
ruoyi同时支持mysql+sqlserver+oracle+postgresql
需求背景 最近需要一个小demo,项目中需要同时连接sqlserver和mysql数据库。 操作教程 1、pom.xml -- 修改common/pom.xml<!-- 动态数据源 --> <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-star…...
微信小程序绘制轨迹
1、map | uni-app官网 根据官网描述:通过从数据库获取POI数据,并通过 uni-id-common 内的路线规划API,计算路线、距离、时间。 2、 <map style"width:100%;height:96%;" id"myMap" :scale"scale" :longi…...
UNION 联合查询
1.UNION ALL联合查询 同样为了演示方便,先向 teacher 表插入多条测试数据: INSERT INTO teacher (name,age,id_number,email) VALUES (姓名一,17,42011720200604077X,NULL), (姓名二,18,42011720200604099X,123qq.com), (姓名三,19,42011720200604020X…...
blender 理解 积木组合 动画制作 学习笔记
一、学习blender视频教程链接 案例2:积木组合_动画制作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?vd_sourced0ea58f1127eed138a4ba5421c577eb1&p10&spm_id_from333.788.videopod.episodes 二、说明 之前已经学习了如何制作积木组…...
关于 FreeSWITCH mod_sofia 注册过期时间的测试
FreeSWITCH 版本:1.10.12,以下简称 Fs SIP 终端:Eyebeam 1.5.14.4 Eyebeam 设置注册的过期时间为 30 Fs 设置为 120,下面是详细配置: <param name"sip-force-expires-max" value"120"/>…...
【LeetCode:349. 两个数组的交集 + 哈希表】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
根据语音生成视频33搜帧
33搜帧,是一个能根据语音生成视频的网站,33搜帧 - 视频帧画面搜索引擎 33搜帧是一个使用AI技术构建的视频帧画面搜索引擎,和一般素材平台通过视频标签来搜索视频不同,33搜帧能搜索到视频素材中的每一帧画面,这个功能可…...
目标检测数据集图片及标签同步锐化
在目标检测任务中,数据集的质量直接影响到模型的性能。数据增强作为提升数据集多样性和模型泛化能力的常用手段,在图像处理过程中扮演着重要角色。锐化(Sharpening)技术是常见的图像增强方法之一,能够突出图像中的细节…...
滚雪球学Redis[6.4讲]:Redis消息队列:构建高效的消息通信与任务调度系统
全文目录: 🎉前言🚦Redis消息队列的使用场景🐳1. 异步任务处理🐋2. 任务调度🐬3. 模块解耦 ⚙️实现发布/订阅模型🐟️1. 发布者发布消息🐠2. 订阅者订阅频道🐡3. 实际应…...
《计算机视觉》—— 换脸
效果如下: 完整代码: import cv2 import dlib import numpy as npJAW_POINTS list(range(0, 17)) RIGHT_BROW_POINTS list(range(17, 22)) LEFT_BROW_POINTS list(range(22, 27)) NOSE_POINTS list(range(27, 35)) RIGHT_EYE_POINTS list(range(36…...
【JavaEE初阶】深入透析文件-IO关于文件内容的操作(四种文件流)
前言 🌟🌟本期讲解关于CAS的补充和JUC中有用的类,这里涉及到高频面试题哦~~~ 🌈上期博客在这里:【JavaEE初阶】文件-IO之实现文件系统的操作如何进行实现-CSDN博客 🌈感兴趣的小伙伴看一看小编主页&…...
复习:react 中的 refs,怎么使用,有哪些使用场景
在 React 中,refs(引用)是一个重要的特性,它允许开发者直接访问 DOM 元素或者 React 组件的实例。以下是对 React 中 refs 的使用及其使用场景的详细解释: 一、refs 的使用方法 字符串引用 在早期的 React 版本中,可以通过字符串来设置 ref。然而,这种方法已经被废弃,…...
OpenClaw多模态扩展:gemma-3-12b-it处理截图与图像识别任务
OpenClaw多模态扩展:gemma-3-12b-it处理截图与图像识别任务 1. 从纯文本到多模态的跨越 去年冬天,我接手了一个自动化测试项目,需要验证某个GUI工具在不同分辨率下的界面布局。最初尝试用传统脚本实现,但面对动态变化的UI元素和…...
DAMO-YOLO代码实例:OpenCV-Python图像预处理与后处理结果渲染详解
DAMO-YOLO代码实例:OpenCV-Python图像预处理与后处理结果渲染详解 1. 引言:从炫酷界面到核心引擎 当你打开DAMO-YOLO的赛博朋克界面,看到霓虹绿的识别框在图片上闪烁时,有没有想过这背后发生了什么?那个漂亮的界面只…...
基于R语言的自动数据收集:网络抓取和文本挖掘实用指南【1.7】
3.5 XML和R的实践现在让我们转到实际例子。XML文件在R会话中如何查看、如何导入、如何访问,以及如何把来自XML文档的信息转化为更便于进一步图形化或统计化分析的数据结构,例如常规的数据框(data frame)呢?正如我们前面…...
你的CSP策略真的安全吗?手把手教你用Google的Nonce方案改造网站(附Tranco万站爬虫分析)
你的CSP策略真的安全吗?Google Nonce方案实战指南与行业适配性解析 当安全团队在年度审计报告中标注"内容安全策略配置不当"时,许多开发者才惊觉自己的防护体系存在致命漏洞。传统CSP(内容安全策略)部署的复杂性就像试图…...
OpenClaw技能市场挖掘:千问3.5-9B增强插件TOP5
OpenClaw技能市场挖掘:千问3.5-9B增强插件TOP5 1. 为什么需要关注OpenClaw技能市场? 第一次接触OpenClaw时,我以为它只是个简单的自动化脚本工具。直到在项目里连续熬了三个深夜处理邮件分类和会议纪要,才意识到自己错过了什么—…...
OpenClaw多模型切换术:Gemma-3-12b-it与Qwen3-32B混合调用指南
OpenClaw多模型切换术:Gemma-3-12b-it与Qwen3-32B混合调用指南 1. 为什么需要多模型混合调用? 去年我在用OpenClaw自动化处理技术文档时,发现一个有趣现象:当让AI帮我写Python脚本时,Qwen3-32B表现优异;但…...
告别迷茫!S32K312 MCU的LIN通信实战:从EB Tresos配置到代码调试全流程避坑
S32K312 MCU的LIN通信实战:从配置到调试的完整避坑指南 第一次在S32K312上实现LIN通信时,我盯着EB Tresos里密密麻麻的MCAL配置选项发呆了半小时。作为从STM32转战NXP平台的工程师,本以为LIN这种低速总线会很简单,直到实际项目中遇…...
从VGG到ResNet:我的模型为什么越深效果越差?深入对比两种经典网络的设计哲学与实战选择
从VGG到ResNet:深度神经网络的设计哲学与实战选择指南 当你第一次尝试用VGG16完成图像分类任务时,可能会惊讶于它的表现——直到你发现训练更深的VGG19时,准确率不升反降。这种反直觉的现象引出了深度学习领域的一个核心问题:为什…...
NomNom存档编辑器:3分钟掌握《无人深空》终极修改秘籍
NomNom存档编辑器:3分钟掌握《无人深空》终极修改秘籍 【免费下载链接】NomNom NomNom is the most complete savegame editor for NMS but also shows additional information around the data youre about to change. You can also easily look up each item indi…...
新手福音:用claude code和快马平台开启你的Python编程第一课
最近在帮朋友入门Python编程时,发现很多新手都会遇到类似的问题:看教程时觉得简单,但自己动手写代码就无从下手。经过几次尝试,我发现用InsCode(快马)平台结合claude code生成的教学项目,能很好地解决这个痛点。下面分…...
