当前位置: 首页 > 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。然而,这种方法已经被废弃,…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...