当前位置: 首页 > news >正文

[自动化测试: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。点击梅花按钮。在弹出的对话框中&#xff0c;填入Name&#xff08;随便填&#xff09;&#xff0c;Repository URL&#xff0c;选择下列的源&#xff0c;一般先选择清华源按OK确认。配置完成 安装seleniumFile→Settings→Project&…...

51单片机——OLED显示图片

取模软件&#xff1a;链接:https://pan.baidu.com/s/1UcrbS7nU4bsawNxsaaULfQ 提取码:gclc 1、如果图片大小和格式不合适&#xff0c;可以先用Img2Lcd软件进行调整图片大小&#xff0c;一般取模软件使用的是.bmp图片&#xff0c;可以进行输出.bmp格式。软件界面如下&#xff1…...

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门

在量子计算中&#xff0c;T门的成本比Clifford门高出很多倍的原因与量子计算中纠错的实现、物理门操作的复杂性以及容错量子计算架构中的成本评估有关。以下是几个关键原因&#xff0c;解释了为什么 T 门的成本在量子计算中远远高于 Clifford 门&#xff1a; 1. T 门和 Cliffo…...

C++之《剑指offer》学习记录(1):类型转换关键字

笔者最近在找工作时&#xff0c;无意间读到了一本名为《剑指offer》的书&#xff0c;粗略翻阅了一下&#xff0c;感觉这将会是一本能让我不再苦恼于笔试和面试“手搓代码”的书。故笔者写下该系列博客记录自己的学习历程&#xff0c;希望能和这本书的读者朋友们一起交流学习心得…...

【Linux】平台设备驱动

在设备驱动模型中&#xff0c;引入总线的概念可以对驱动代码和设备信息进行分离。但是驱动中总线的概念是软件层面的一种抽象&#xff0c;与我们SOC中物理总线的概念并不严格相等。 物理总线&#xff1a;芯片与各个功能外设之间传送信息的公共通信干线&#xff0c;其中又包括数…...

【Linux】命令行参数环境变量

文章目录 命令行参数环境变量环境变量的概念常见环境变量查看环境变量测试PATH修改PATH HOME和环境变量相关的命令环境变量是如何被组织的通过系统调用putenv和getenv获取或设置环境变量环境变量通常是具有全局属性的普通变量与环境变量的区别 命令行参数 main函数有三种形式&…...

libaom 源码分析:twopass_encoder.c 文件

libaom libaom 是 AOMedia&#xff08;开放媒体联盟&#xff09;开发的一个开源视频编解码器库&#xff0c;它是 AV1 视频压缩格式的参考实现&#xff0c;并被广泛用于多种生产系统中。libaom 支持多种功能&#xff0c;包括可扩展视频编码&#xff08;SVC&#xff09;、实时通信…...

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官网 根据官网描述&#xff1a;通过从数据库获取POI数据&#xff0c;并通过 uni-id-common 内的路线规划API&#xff0c;计算路线、距离、时间。 2、 <map style"width:100%;height:96%;" id"myMap" :scale"scale" :longi…...

UNION 联合查询

1.UNION ALL联合查询 同样为了演示方便&#xff0c;先向 teacher 表插入多条测试数据&#xff1a; INSERT INTO teacher (name,age,id_number,email) VALUES (姓名一,17,42011720200604077X,NULL), (姓名二,18,42011720200604099X,123qq.com), (姓名三,19,42011720200604020X…...

blender 理解 积木组合 动画制作 学习笔记

一、学习blender视频教程链接 案例2&#xff1a;积木组合_动画制作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?vd_sourced0ea58f1127eed138a4ba5421c577eb1&p10&spm_id_from333.788.videopod.episodes 二、说明 之前已经学习了如何制作积木组…...

关于 FreeSWITCH mod_sofia 注册过期时间的测试

FreeSWITCH 版本&#xff1a;1.10.12&#xff0c;以下简称 Fs SIP 终端&#xff1a;Eyebeam 1.5.14.4 Eyebeam 设置注册的过期时间为 30 Fs 设置为 120&#xff0c;下面是详细配置&#xff1a; <param name"sip-force-expires-max" value"120"/>…...

【LeetCode:349. 两个数组的交集 + 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

根据语音生成视频33搜帧

33搜帧&#xff0c;是一个能根据语音生成视频的网站&#xff0c;33搜帧 - 视频帧画面搜索引擎 33搜帧是一个使用AI技术构建的视频帧画面搜索引擎&#xff0c;和一般素材平台通过视频标签来搜索视频不同&#xff0c;33搜帧能搜索到视频素材中的每一帧画面&#xff0c;这个功能可…...

目标检测数据集图片及标签同步锐化

在目标检测任务中&#xff0c;数据集的质量直接影响到模型的性能。数据增强作为提升数据集多样性和模型泛化能力的常用手段&#xff0c;在图像处理过程中扮演着重要角色。锐化&#xff08;Sharpening&#xff09;技术是常见的图像增强方法之一&#xff0c;能够突出图像中的细节…...

滚雪球学Redis[6.4讲]:Redis消息队列:构建高效的消息通信与任务调度系统

全文目录&#xff1a; &#x1f389;前言&#x1f6a6;Redis消息队列的使用场景&#x1f433;1. 异步任务处理&#x1f40b;2. 任务调度&#x1f42c;3. 模块解耦 ⚙️实现发布/订阅模型&#x1f41f;️1. 发布者发布消息&#x1f420;2. 订阅者订阅频道&#x1f421;3. 实际应…...

《计算机视觉》—— 换脸

效果如下&#xff1a; 完整代码&#xff1a; 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关于文件内容的操作(四种文件流)

前言 &#x1f31f;&#x1f31f;本期讲解关于CAS的补充和JUC中有用的类&#xff0c;这里涉及到高频面试题哦~~~ &#x1f308;上期博客在这里&#xff1a;【JavaEE初阶】文件-IO之实现文件系统的操作如何进行实现-CSDN博客 &#x1f308;感兴趣的小伙伴看一看小编主页&…...

复习:react 中的 refs,怎么使用,有哪些使用场景

在 React 中,refs(引用)是一个重要的特性,它允许开发者直接访问 DOM 元素或者 React 组件的实例。以下是对 React 中 refs 的使用及其使用场景的详细解释: 一、refs 的使用方法 字符串引用 在早期的 React 版本中,可以通过字符串来设置 ref。然而,这种方法已经被废弃,…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…...

SQL进阶之旅 Day 22:批处理与游标优化

【SQL进阶之旅 Day 22】批处理与游标优化 文章简述&#xff08;300字左右&#xff09; 在数据库开发中&#xff0c;面对大量数据的处理任务时&#xff0c;单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”&#xff0c;深入探讨如何通过批量操作和游标技术提…...

Cursor AI 账号纯净度维护与高效注册指南

Cursor AI 账号纯净度维护与高效注册指南&#xff1a;解决限制问题的实战方案 风车无限免费邮箱系统网页端使用说明|快速获取邮箱|cursor|windsurf|augment 问题背景 在成功解决 Cursor 环境配置问题后&#xff0c;许多开发者仍面临账号纯净度不足导致的限制问题。无论使用 16…...

构建Docker镜像的Dockerfile文件详解

文章目录 前言Dockerfile 案例docker build1. 基本构建2. 指定 Dockerfile 路径3. 设置构建时变量4. 不使用缓存5. 删除中间容器6. 拉取最新基础镜像7. 静默输出完整示例 docker runDockerFile 入门syntax指定构造器FROM基础镜像RUN命令注释COPY复制ENV设置环境变量EXPOSE暴露端…...