Debian/Ubuntu 安装 Chrome 和 Chrome Driver 并使用 selenium 自动化测试

news2024/9/20 18:11:44

截至目前,Chrome 仍是最好用的浏览器,没有之一。Chrome 不仅是日常使用的利器,通过 Chrome Driver 驱动和 selenium 等工具包,在执行自动任务中也是一绝。相信大家对 selenium 在 Windows 的配置使用已经有所了解了,下面就让我们看看如何在 Linux 上配置使用 selenium 吧(无图形化界面也可用的方法!

本文介绍的方法仅 Debian 系可用。

安装 Chrome

首先下载 Chrome 本体,直接使用 wget 即可。

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

经本人测试(2023.7.9,青岛联通家用宽带),本文所提及的所有谷歌相关链接均不需要科学上网。

然后安装即可:

sudo dpkg -i google-chrome-stable_current_amd64.deb

如果成功了,那么恭喜你可以直接进入下一步;而经测试,这一步大概率会报错提示缺少依赖,没有关系,现在只需要运行下面这句代码,再重新执行一遍安装命令即可:

sudo apt-get install -f

安装chrome-driver

执行下面的代码查看 Chrome 版本:

google-chrome -version

然后在 https://chromedriver.storage.googleapis.com/index.html 中寻找对应版本的 Chrome Driver(可使用 Ctrl + F 进行搜索)。没有完全对应的版本没关系,下载一个与之最接近的即可,例如我的版本号为 114.0.5735.198,于是我选择了 114.0.5735.90

1688892123614

1688892280212

在新界面中下载 linux64 版本(复制链接,使用 wget 下载即可),然后解压缩,并复制到 /usr/bin 目录下以方便程序使用(如果不放入这个目录,则需要在后续的 Python 程序中手动指定 Driver 位置)

1688892363032

wget https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo cp chromedriver /usr/bin

测试

安装 selenium 模块并尝试启动 Chrome。

将以下测试脚本写入 test.py

普通

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


def init_driver():
    options = Options()
    options.add_argument('--no-sandbox') # 亲测 Debian 必须加,Ubuntu 随意
    options.add_argument("--headless")
    options.add_argument('--disable-gpu')
    driver = webdriver.Chrome(options=options)
    return driver

init_driver()

print('Success')

指定Driver路径

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


def init_driver():
    options = Options()
    options.add_argument('--no-sandbox') # 亲测 Debian 必须加,Ubuntu 随意
    options.add_argument("--headless")
    options.add_argument('--disable-gpu')
    service = Service(executable_path='/root/chromedriver')
    driver = webdriver.Chrome(options=options, service=service)
    return driver

init_driver()

print('Success')

通过 pip 安装 selenium 并运行脚本,看到成功提示即可。

pip install selenium
python3 test.py

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

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

相关文章

揭开高级产品经理思维的秘密

我经常被问到产品经理如何晋升到更高级别。事实上,获得晋升往往是一场复杂的游戏。是的,你的技能和成就很重要,但其他因素也很重要,比如你的经理对人才培养的关心程度、你的同事有多优秀、任期有多长、公司的政治氛围如何等等。 所…

大学生竞赛管理系统springboot比赛报名信息java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 大学生竞赛管理系统springboot 系统有3权限&#xff…

小研究 - 主动式微服务细粒度弹性缩放算法研究(三)

微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放,忽略了能够充分利用单台服务器资源的细粒度垂直缩放,从而导致资源浪费。为此,本文设计了主动式微服务细粒度弹性缩放算法…

工业RFID读写器型号对比!

工业RFID读写器根据其使用用途可以分为几种,分别是一体式读写器、分体式读写器、平板式读写器以及工业手持终端等。本文将从这几种产品的特点和功能出发,对这几款工业读写器型号进行对比。 工业RFID读写器型号对比 1、一体式读写器 一体式工业读写器的最…

Java并发系列之一:JVM线程模型

什么是线程模型: Java字节码运行在JVM中,JVM运行在各个操作系统上。所以当JVM想要进行线程创建回收这种操作时,势必需要调用操作系统的相关接口。也就是说,JVM线程与操作系统线程之间存在着某种映射关系,这两种不同维…

【Golang 接口自动化07】struct转map的三种方式

目录 背景 struct转map 使用json模块 使用reflect模块 使用第三方库 测试 总结 资料获取方法 背景 我们在前面介绍过怎么使用net/http发送json或者map数据,那么它能不能直接发送结构体数据呢?我们今天一起来学习结构体struct转map的三种方法&am…

(笔记)Layout知识点汇总(积累量变)

Layout知识点汇总 布线1、电容电阻中间不要穿线2、线宽不要超过焊盘,引出后加粗 拐角1、layout:钝角走线 线宽间距1、注意和差分信号线的距离 焊盘1、焊盘中心出线2、线连接到焊盘中心 布局1、时钟线包地处理2、音频的左右声道,加粗&#xff…

电脑维护:10妙招,让你的电脑更加稳定!

你的电脑已经成为你工作、学习、娱乐的最佳工具之一,但是如果你不做好电脑维护工作,就可能面临着电脑变慢、蓝屏、崩溃等问题。在这篇文章中,我们将介绍10个电脑维护步骤,让你的电脑更加稳定! 为什么需要电脑维护&…

如何正确培养数据思维?

在大数据时代,数据思维已成了每个人的必备品。下面,我们就来了解一下,什么是数据思维。不过要想弄懂什么是数据思维,首先来打破大家对数据的错误认知,数据不仅仅指数字。 1. 数据思维是什么? 百度百科对数…

DongshanPI-Vision 开发板功能示意图,基于嘉楠K510(K210升级款)!

全球首款基于嘉楠K510用于嵌入式AI教学的高性能RISC-V开发板 嘉楠K510是一款双核64位RISC-V CPU,内置2.5TOPS 算力,支持三个摄像头,支持 整型 浮点型 AI模型部署,是一款MPU芯片,完全支持 Linux 4.17内核,使用Buildroot SDK 进行构建系统,默认支持Debian发行版. K510是K210升级…

arxiv 2023 | 4D Millimeter-Wave Radar in Autonomous Driving: A Survey

原文链接:https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486550&idx1&sn98bf915a047bd4312f9eddad3d47d705&chksmcf51beaff82637b90b37bc9c17addade80cb13ffef8edcb71a57e5b3c735b44fcf6776f0a957#rd arxiv 2023 | 4D Millimeter-Wave R…

途乐证券:投融资多端改革并进 资本市场迎政策“及时雨”

近来召开的中心政治局会议指出,要活泼本钱商场,提振出资者决心。当时,证监会监管系统正从出资端、融资端、买卖端等方面归纳施策,积极执行中心决议方案布置。业内人士指出,跟着后续一系列方针的出台,商场决…

#rust taur运行报错#

场景:在window11系统上运行 tauri桌面莹应用,提示错误。 Visual Studio 2022 生成工具 安装的sdk11 , rust运行模式是stable-x86_64-pc-window-gnu, 运行npm run tauir dev 一致失败,失败信息如下 原因:1:在window11系…

Flutter:gsy_flutter_demo项目学习——布局切换动画、列表滑动监听、列表滑动到指定位置、高斯模糊

前言 gsy_flutter_demo是一个关于各种小案例和小问题的方案解决。项目是由flutter大佬恋猫de小郭维护的 项目地址:https://github.com/CarGuo/gsy_flutter_demo 感兴趣的可以看一下大佬的文章:Flutter完整开发实战详解系列,GSY Flutter 系…

7月无代码资讯|Gartner报告:低代码处于峰值期;轻流5.0发布全面升级

栏目导读:无代码资讯栏目从全球视角出发,带您了解无代码相关最新资讯。 TOP3 大事件 1、Mendix 10将AI和ML融入低代码平台 ,助力企业实现组合式数字解决方案交付 在快速变化的商业环境中,所有企业都面临着如何有效地交付业务成果的…

IT技术面试中常见的问题及解答技巧

在IT技术面试中,面试官常常会问到一些常见的问题,针对这些问题,我们可以充分准备和提前准备一些解答技巧。下面我将分享一些我个人的经验和观察,希望对大家有所帮助。 请介绍一下你的项目经验。 在回答这个问题时,我们…

Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(上)

Hadoop运行模式 前言Hadoop运行模式1 本地运行模式(官方WordCount)2 完全分布式运行模式(开发重点)2.1 虚拟机准备2.2 编写集群分发脚本xsync1)scp(secure copy)安全拷贝2)rsync 远程…

基于Springboot 猪场管理系统-计算机毕设 附源码11779

Springboot 猪场管理系统 摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对猪场管理系统等问题…

Linux--获取子进程退出码的代码

#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/wait.h>int main (void) {pid_t id fork();if (id 0) {int cnt 5; // 循环5次// childwhile (1) {// 五秒…

【Linux命令200例】paste一个用于合并文件的命令行实用工具

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入…