华为云云耀云服务器L实例评测|Python Selenium加Chrome Driver构建UI自动化测试实践

在这里插入图片描述

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。
🏆数年电商行业从业经验,AWS/阿里云资深使用用户,历任核心研发工程师,项目技术负责人。
🎉欢迎 👍点赞✍评论⭐收藏

文章目录

  • 🚀一、前言
  • 🚀二、Chrome浏览器环境搭建
    • 🔎2.1 安装Google Chrome浏览器
    • 🔎2.2 下载和安装Chrome Driver
  • 🚀三、使用Python Selenium编写自动化UI测试脚本
    • 🔎3.1 安装Selenium库
    • 🔎3.2 自动化UI测试脚本编写
  • 🚀四、运行自动化UI测试脚本
    • 🔎4.1 首次执行与错误解决
    • 🔎4.2 再次执行
  • 🚀五、结论


随着云计算时代的进一步深入,越来越多的中小企业企业与开发者需要一款简单易用、高能高效的云计算基础设施产品来支撑自身业务运营和创新开发。基于这种需求,华为云焕新推出华为云云服务器实例新品。这边文章由我带大家走一遍华为云云耀云服务器L实例评测|Python Selenium加Chrome Driver构建UI自动化测试实践。

接着上一篇 华为云云耀云服务器L实例评测|带宽,磁盘,CPU,内存以及控制台监控测试 继续讲。

🚀一、前言

今天仍然是对 华为云云耀云服务器L实例评测 进行评测,感谢各位小伙伴一如既往的支持。 在Linux操作系统中,我们可以通过以下步骤来安装Google Chrome浏览器和Chrome Driver,以便使用Python的Selenium库进行自动化UI测试。

在这里插入图片描述

🚀二、Chrome浏览器环境搭建

🔎2.1 安装Google Chrome浏览器

打开终端并更新软件包列表:

sudo apt-get update

下载Google Chrome的安装包:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

在这里插入图片描述
** 这里下载的速度稍微有点慢。**

安装下载的deb文件

sudo dpkg -i google-chrome-stable_current_amd64.deb

安装过程如下图:

在这里插入图片描述

如果报错如下,解决可能出现的依赖问题

在这里插入图片描述
可以执行下面的命令,我执行后再执行安装没问题:

sudo apt-get install -f

现在,已经成功安装了Google Chrome浏览器。您可以在终端中运行google-chrome命令来启动它,或者在应用程序菜单中找到并打开它。

在这里插入图片描述

🔎2.2 下载和安装Chrome Driver

访问Chrome Driver官方下载页面,查找与您所安装的Chrome浏览器版本匹配的最新Chrome Driver版本,然后复制其下载链接。

使用wget命令下载Chrome Driver:

wget [Chrome Driver下载链接]

请将[Chrome Driver下载链接]替换为您复制的实际链接。

解压下载的zip文件:

unzip chromedriver_linux64.zip

请注意,这仅适用于64位Linux系统。如果您使用32位系统,请下载对应的32位Chrome Driver并将命令替换为chromedriver_linux32.zip

将解压缩的Chrome Driver可执行文件移动到/usr/local/bin/目录下:

sudo mv chromedriver /usr/bin/

添加可执行权限:

sudo chmod +x /usr/bin/chromedriver

现在,您已经安装了Chrome Driver,并且可以在终端中运行chromedriver命令来启动它。

🚀三、使用Python Selenium编写自动化UI测试脚本

在安装好ChromeChrome Driver之后,我们可以使用PythonSelenium库来编写自动化UI测试脚本。以下是一个简单的示例,演示如何使用Selenium打开Chrome浏览器并获取网页的标题。

🔎3.1 安装Selenium库

首先,确保已经在系统中安装了PythonSelenium库。如果未安装,可使用以下命令进行安装:

pip3 install selenium

这个pip源默认配置不行呢,体验还是不够友好,并且即便安装成功了,也是访问非常慢。可以优化一下默认配置。

在这里插入图片描述

然后尝试下面挂代理地址安装,安装成功。

pip3 install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

🔎3.2 自动化UI测试脚本编写

创建一个新的Python脚本,并导入必要的库:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

初始化Chrome选项和WebDriver:

chrome_options = Options()
chrome_options.add_argument("--headless")  # 在无头模式下运行浏览器,即隐藏浏览器窗口
driver = webdriver.Chrome(options=chrome_options)

打开网页并获取标题:

driver.get("https://www.example.com")
title = driver.title
print("网页标题:", title)

关闭WebDriver:

driver.quit()

🚀四、运行自动化UI测试脚本

🔎4.1 首次执行与错误解决

要运行自动化UI测试脚本,只需在终端中执行Python脚本:

python chrome.py

请将chrome.py替换为您实际的测试脚本文件名。

首次执行报错,原来是我们的chromedriver版本和chrome对应不起来。
在这里插入图片描述
尝试换一个试试

# 下载源码包
wget https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/117.0.5938.62/linux64/chromedriver-linux64.zip
# 解压
unzip chromedriver-linux64.zip
# 创建软链
ln -s /root/source/chromedriver-linux64/chromedriver /usr/bin/chromedriver
# 查看安装情况
chromedriver --version

在这里插入图片描述

🔎4.2 再次执行

这个时候我们把chrome.py的文件换成下面的,目的就是打印出网页标题。比如我们的目标就是打印并抓取出https://www.runoob.com/这个页面的标题。

#!/usr/bin/env python
# -*- coding:utf-8 -*-from selenium import webdriver
from selenium.webdriver.chrome.options import Options
print("依赖包导入完成,开始进行浏览器设置")
chrome_options = Options()
# 设置无头浏览器
chrome_options.add_argument('--headless')
# 设置启动窗口大小
chrome_options.add_argument('window-size=1440,5000')
# 设置非沙盒模式
chrome_options.add_argument('--no-sandbox')
#chrome_options.add_argument('--start-maximized')
ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'
chrome_options.add_argument('user-agent=' + ua)
# chrome_options.add_experimental_option('w3c', False)
print("进行浏览器设置完成,开始进行启动浏览器")
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.runoob.com/")
print("启动浏览器完成,开始进行标题获取")
title = driver.title
print("获取成功,网页标题是:", title)

运行结果展示,是不是满满的技术感觉。

在这里插入图片描述

🚀五、结论

通过以上步骤,我们已经成功在**华为云云耀云服务器L实例**下安装了Google Chrome浏览器和Chrome Driver,并且使用PythonSelenium库编写了一个简单的自动化UI测试脚本。您可以根据自己的需求扩展和修改这个脚本,以进行更复杂的UI测试。

自动化UI测试是一个强大的工具,可以帮助开发人员和测试人员更有效地检测和调试Web应用程序。希望这篇博文对您有所帮助,感谢各位伙伴的阅读!

在这里插入图片描述

今天关于华为云云耀云服务器L实例评测,Python Selenium加Chrome Driver构建UI自动化测试实践就到这里了,很荣幸收到CSDN华为云邀请参与本次评测,如果后面有机会将分享更多的评测内容。云服务云能力是当今信息化时代不可或缺的东西,云服务的稳定性安全性高性能易用性是所有云服务商共同追求的目标,也是万千开发者、合作商、客户的共同期待。 希望华为云越来越好,希望中国的云事业更上一层楼,我作为一个普通开发者,也将不断参与与见证这一伟大的技术探索与变革。

在这里插入图片描述

今天的内容就到这里,我们下期再会。

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

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

相关文章

HackTheBox - Medium - Linux - Bagel

Bagel 今天我开始了《Red Team Development and Operations A Practical Guide》的学习,保持学习,后面差不多到时机后就学CRTOⅡ Bagel 是一款中等难度的 Linux 机器,其特点是电子商店容易受到路径遍历攻击,通过该攻击可以获取应…

使用vmware,在ubuntu18.04中使用笔记本的摄像头

步骤1:在windows中检查相机状态 win10系统中,在左下的搜索栏,搜索“相机”,点击进入即可打开相机,并正常显示图像。 注意:如果相机连接到了虚拟机,则不能显示正常。 步骤2:在ubuntu…

STM32——通用计时器

通用计时器框图 1.时钟源 1)内部时钟(CK_INT) 2)外部时钟模式 1:外部输入引脚(TIx),x1,2(即只能来自于通道 1 或者通道 2) 3)外部时钟模式 2:外部触发输入(ETR) 4&#…

ARCGIS PRO SDK 访问Geometry对象

一、Geometry常用对象 二、主要类 1、ReadOnlyPartCollection:Polyline 和 Polygon 使用的 ReadOnlySegmentCollection 部件的只读集合,属性成员:​ 名字描述Count获取 ICollection 中包含的元素数。TIEM获取位于指定索引处的元素。Spatial…

mac中excel条件格式找到每一列的最大值并标红

假设现在excel有A1:R24组数据,最终效果如下 先选择要处理数据的第一列,然后点击【条件格式】-【新建规则】 style选择【classic】以及【Use a formula to determine which cells to format】,输入规则【C3MAX(C$3:C$24)】 注意这里C$3前面没…

Rust开发⼲货集(1)--迭代器与消费器

本内容是对 Rust开发干货集[1] 的实践与扩展. iter() 不转移所有权 先简单解释下什么叫"转移所有权": 在 Rust 中,"转移所有权"(Ownership Transfer)是一种核心概念,它涉及变量和数据的所有权从一个实体转移…

3D视觉-结构光测量-线结构光测量

概述 线结构光测量中,由激光器射出的激光光束透过柱面透镜扩束,再经过准直,产生一束片状光。这片光束像刀刃一样横切在待测物体表面,因此线结构光法又被成为光切法。线结构光测量常采用二维面阵 CCD 作为接受器件,因此…

QT上位机开发(乘法计算小软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面一篇文章,我们学习了怎么创建qt的第一个工程,怎么用designer给qt修改界面。虽然我们到目前为止,还没有编写…

C#使用switch语句更改窗体颜色

目录 一、示例 二、生成 用switch多路选择语句及窗体的BackColor属性更改窗体的BackColor属性。该属性用于获取或设置控件的背景颜色。 可以使用Color结构的静态属性获取Color对象,如Color.Red;也可以使用Color结构的静态方法Color.FromArgb()&#xf…

Linux权限的基本理解

一:🚩Linux中的用户 1.1🥦用户的分类 🌟在Linux中用户可以被分为两种用户: 超级用户(root):可以在Linux系统中做各种事情而不被约束普通用户:只能做有限的事情被权限约束 在实际操作时超级用户的命令提示符为#,普通用户的命令提示符为$,可…

python观察图像的直流分量——冈萨雷斯数字图像处理

原理 在数字图像处理中,图像的直流分量(DC分量)是指图像中的平均亮度水平。这个概念源自于傅里叶变换,其中信号可以分解为多个频率成分。在这个上下文中,直流分量对应于频率为零的成分,即信号的平均值。 在…

CSS一个纯样式花里胡哨的动态渐变背景块

使用SASS或CSS纯样式花里胡哨的动态渐变背景块 鼠标放在小方块上会放大并挤压周围方块&#xff0c;背景颜色会动态改变。 效果如下 HTML结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"vie…

基于JWT的用户token验证

1. 基于session的用户验证 2. 基于token的用户身份验证 3. jwt jwt代码实现方式 1. 导包 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.2</version> </dependency> 2. 在登录…

Spring Data Redis对象缓存序列化问题

相信在项目中&#xff0c;你一定是经常使用 Redis &#xff0c;那么&#xff0c;你是怎么使用的呢&#xff1f;在使用时&#xff0c;有没有遇到同我一样&#xff0c;对象缓存序列化问题的呢&#xff1f;那么&#xff0c;你又是如何解决的呢&#xff1f; Redis 使用示例 添加依…

C++/CLI——1简介

C/CLI——1简介 如果你是.net程序员&#xff0c;不免会用到C/C写的库。对于简单的调用&#xff0c;可以直接使用DllImport来完成就可以&#xff0c;详情可参考C#调用C/C从零深入讲解。但是对于复杂的C类和对象&#xff0c;尤其是类似于OCC的大型C项目&#xff0c;DllImport可能…

初识大数据,一文掌握大数据必备知识文集(6)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

三子棋(c语言)

前言&#xff1a; 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#xff0c;率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小&#xff0c;三子棋在很多时候会出现和…

Android Studio配置国内镜像源和HTTP代理/解决:Android Studio下载gradle速度慢的问题

&#xff08;方案一&#xff09;Android Studio配置国内镜像源和HTTP代理 一、配置国内镜像源/依赖库 1.1 打开项目的setting.gradle.kts文件 配置进去 pluginManagement {repositories {maven { urluri ("https://www.jitpack.io")}maven { urluri ("https:…

【Matlab】CNN卷积神经网络时序预测算法

资源下载&#xff1a; https://download.csdn.net/download/vvoennvv/88681558 一&#xff0c;概述 CNN&#xff08;Convolutional Neural Network&#xff0c;卷积神经网络&#xff09;是一种前馈神经网络&#xff0c;主要用于处理具有类似网格结构的数据&#xff0c;例如图像…

神经网络中的分位数回归和分位数损失

在使用机器学习构建预测模型时&#xff0c;我们不只是想知道“预测值(点预测)”&#xff0c;而是想知道“预测值落在某个范围内的可能性有多大(区间预测)”。例如当需要进行需求预测时&#xff0c;如果只储备最可能的需求预测量&#xff0c;那么缺货的概率非常的大。但是如果库…