在Linux上使用Selenium驱动Chrome浏览器无头模式

2024-05-07 09:04

本文主要是介绍在Linux上使用Selenium驱动Chrome浏览器无头模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        大家好,我们平时在做UI自动化测试的时候,经常会用到Chrome浏览器的无头模式(无界面模式),并且将测试代码部署到Linux系统中执行,或者平时我们写个爬虫爬取网站的数据也会使用到,接下来和大家分享一下在Linux系统中使用Chrome无头模式。

关于Linux常用命令,大家可以参考:作为测试人员的Linux常用命令

一、在Linux上安装Chrome浏览器

1、首先要先安装Chrome浏览器所需要的依赖包

yum install -y wget unzip libX11 GConf2 fontconfig

安装完成后如下图:

2、下载Chrome浏览器

cd /opt
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

3、下载完成后通过yum安装

yum install -y google-chrome-stable_current_x86_64.rpm

安装完成后如下图:

查看Chrome浏览器的版本,下载对应的webdriver,此处的浏览器版本为:124.0.6367.118

google-chrome --version

二、安装Chrome WebDriver

Chrome WebDriver下载地址(浏览器版本114之前):

https://chromedriver.storage.googleapis.com/index.html

Chrome WebDriver下载地址(浏览器版本123以后): 

Chrome for Testing availability

找到对应版本的WebDriver进行linux版本的下载,有时候没有对应版本的chromedriver则安装低一个版本的也可以。

此处,我得Chrome浏览器版本为 124.0.6367.118,找到对应版本的linux安装包,但是被标红显示HTTP status 是404了,无法下载。

只能选择低一个版本的下载了

复制下载链接,在linux系统中直接下载,或者本机下载完成后上传到服务器也可以。 

wget https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.91/linux64/chromedriver-linux64.zip

下载完成后,对压缩包进行解压

unzip chromedriver_linux64.zip

 解压完成后,出现一个相同名字的目录

进入到目录中可以看到浏览器驱动文件

将解压后的 chromedriver 移动或者复制到 /usr/local/bin/ 目录下

mv chromedriver /usr/local/bin/

验证ChromeWebDriver是否安装成功

chromedriver --version

三、配置Python3环境

此处省略,参考:Linux安装Python3.9环境

四、安装selenium

pip3 install selenium

安装完成后如下图:

五、编写脚本

创建一个python文件,命名为chrome_test.py

touch chrome_test.py

通过vi编辑器编辑文件

vi chrome_test.py

文件内容如下:

# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsoptions = Options()
# 启用无头模式
options.add_argument('--headless')options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--remote-debugging-port=9222')
# 创建 WebDriver 对象
driver = webdriver.Chrome(options=options)
print('以无头模式驱动浏览器')
# 打开百度首页
driver.get(url='https://www.baidu.com')
print('访问百度')
# 关闭浏览器
driver.quit()
print('关闭浏览器')

编辑完成后,保存文件。

六、运行脚本

python3 chrome_test.py

运行后,出现下面报错,原因是因为我本机的 urllib3 和 ssl 模块之间的版本不匹配,需要对 urllib3 模块进行降级

降级urllib3模块的版本

pip3 install urllib3==1.26.7

降级完成后,重新运行脚本。

运行成功!大功告成!!

这篇关于在Linux上使用Selenium驱动Chrome浏览器无头模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966915

相关文章

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将