如何在多平台(win、mac、linux)上安装webdriver并使用selenium

一、我们需要先安装 chrome 浏览器:

windows 和 mac 系统正常安装,Ubuntu 系统请按以下步骤操作:

  1. 更新你的软件包列表:

    这是确保你的软件包列表是最新的,这样当你尝试安装软件包时,APT 能够找到它们。终端中运行:

    sudo apt update && sudo apt upgrade -y
    
  2. 手动安装依赖:

    安装以下依赖包:

    sudo apt install fonts-liberation libu2f-udev libvulkan1 xdg-utils
    

    如果其中的某个包无法安装,你可能需要查找替代的包或添加其他的软件源。

  3. 再次尝试安装 Chrome:

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

二、安装 chromedriver

1.手动安装

Selenium 需要 WebDriver 驱动程序来控制浏览器。你需要下载与你的浏览器版本相匹配的 WebDriver。例如,如果你使用 Chrome,你需要下载对应你 chrome 版本的 ChromeDriver。

ChromeDriver 下载地址:https://sites.google.com/chromium.org/driver/downloads?authuser=0

2.自动安装

1)方法一:selenium 各版本通用的方法:使用webdriver_manager

pip install webdriver-manager
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

测试:

# 导航到百度主页
driver.get("https://www.baidu.com")

# 打印标题信息
print(driver.title)

# 关闭浏览器
driver.quit()

更多说明见仓库主页的说明文件。

2)方法二:高版本 selenium 内置了 Selenium Manager

如果你使用的是较新的 Selenium 版本(例如 v4.12.0),则不必担心手动下载 chromedriver,因为 Selenium 的新内置工具 [Selenium Manager 会自动为你下载并管理驱动程序](https://stackoverflow.com/questions/77111127/how-can-we-download-chromedriver-117#:~:text=Suggesstion%3A Having said the above%2C,can be as simple as),所以不用手动下载 webdriver 了,运行代码测试:

from selenium import webdriver

# 创建一个新的 Chrome 会话
driver = webdriver.Chrome()

# 导航到百度主页
driver.get("https://www.baidu.com")

# 打印标题信息
print(driver.title)

# 关闭浏览器
driver.quit()

三、Codespace 介绍

Codespace是一个代码空间是托管在云中的开发环境。,创建的每个 codespace 都由 GitHub 托管在虚拟机上运行的 Docker 容器中,Github 用户每月都有免费额度可以使用,可以点击GitHub Codespaces 快速入门。如果我们能在 codespace 中运行 selenium 岂不是每月可以薅羊毛,而且自带科学上网功能,我们又可以不用翻墙直连 codespace。

Codespace界面

Codespace 中如何使用 selenium 呢?

直接在 python 程序中运行 selenium 相关代码是失败的,会报错AttributeError: ‘NoneType’ object has no attribute ‘split’。原因是默认没有安装 chrome 浏览器,那当然无法运行基于 chrome 的 chromedriver。

image-20231012224243596

codespace 本身是 amd64 架构的 ubuntu 系统,使用 selenium 需要使用下列方法安装 chrome 浏览器:

这是确保你的软件包列表是最新的,这样当你尝试安装软件包时,APT 能够找到它们。终端中运行:

  1. 更新你的软件包列表
sudo apt update && sudo apt upgrade -y
  1. 手动安装依赖:

安装以下依赖包:

sudo apt install fonts-liberation libu2f-udev libvulkan1 xdg-utils

如果其中的某个包无法安装,你可能需要查找替代的包或添加其他的软件源。

  1. 安装 Chrome:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

在树莓派等 arm64 架构的 Ubuntu 系统中使用 selenium:

有很多人有自己的服务器,但是是 arm 架构的,比如树莓派:

树莓派5

当然也可以跑 python 程序,运行 selenium,但是流程稍有区别:

  1. 需要安装 chromium 和 chromium-browser,依次运行下列命令:

    sudo apt update && sudo apt upgrade -y
    sudo apt install fonts-liberation libu2f-udev libvulkan1 xdg-utils -y
    sudo apt-get install chromium-chromedriver
    sudo apt-get install chromium-browser
    
  2. 初始化浏览器有区别:

    1)因为我们已经下载了 chromium 和 chromium-chromedriver,我们先验证他们的位置和版本:

    • 使用whereis <app>命令可以找到 chromium-chromedriver 和 chromium 的位置:
whereis chromium
whereis chromedriver

分别输出/snap/bin/chromium/usr/bin/chromedriver

使用<app> --version确定其版本:

 chromium --version
 chromedriver --version

分别输出::Chromium 118.0.5993.70 snapChromeDriver 118.0.5993.70

  1. 在 python 代码中指定浏览器驱动的执行地址:
from selenium.webdriver.chrome.service import Service
service = Service("/usr/bin/chromedriver") # seleiunm4版本使用Service指定浏览器地址
driver = webdriver.Chrome(service=service, options=options)

如果你还有其他问题,可以在我的博客评论或者微信私信我。


如何在多平台(win、mac、linux)上安装webdriver并使用selenium
https://blog.renhai.online/archives/tools-codespace-selenium
作者
Renhai
发布于
2023年10月19日
更新于
2024年06月17日
许可协议