在 WSL2 的 Ubuntu 20.04 LTS 安装成功

# 1. 安装 Chrome

sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

第一次运行 sudo dpkg -i google-chrome*.deb 命令可能会依赖报错,尝试用 sudo apt-get install -f 修复,再次运行 sudo dpkg -i google-chrome*.deb

尝试 google-chrome-stable --version

google-chrome-stable --version
Google Chrome 81.0.4044.138

有具体版本就成功了。

配置一下 Chrome:

nano /opt/google/chrome/google-chrome

在最后的 exec -a "$0" "$HERE/chrome" "$@" 后面加上 --user-data-dir --no-sandbox

exec -a "$0" "$HERE/chrome" "$@" --user-data-dir --no-sandbox

运行 chrome 报错试试重启大法。

# 2. 配置 webdriver

可以去谷歌的官网 http://chromedriver.storage.googleapis.com/index.html 下,国内就用淘宝的镜像 https://npm.taobao.org/mirrors/chromedriver 下。

Chromedriver 的版本要对应 Chrome 的版本,这里就下载 81.0.4044.138

wget https://npm.taobao.org/mirrors/chromedriver/81.0.4044.138/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
chmod +x chromedriver
sudo mv -f chromedriver /usr/local/share/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

查看 Chromedriver 版本:

chromedriver --version
ChromeDriver 81.0.4044.138 (8c6c7ba89cc9453625af54f11fd83179e23450fa-refs/branch-heads/4044@{#999})

# 3. 安装 selenium

首先确保环境有 Python,运行:

python3 -V
Python 3.6.9
pip3 -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
sudo pip3 install selenium

# 4. 测试

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://github.com/')
driver.save_screenshot(driver.title+'.png')

使用 Chrome 的无头模式 (headless)

#coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.chrome.options import Options
options = Options()
options.add_argument('--headless') # 无头模式,可不启用界面显示运行
options.add_argument('--disable-gpu') # 禁用 GPU 加速
options.add_argument('user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edg/81.0.416.72"')
driver = webdriver.Chrome(options=options)
driver.get('https://github.com/')
driver.save_screenshot(driver.title+'.png')

# *5. 字符界面运行

如果想要在字符界面使用 Chrome 进行测试,需要使用工具 Xvfb。 X Virtual Framebuffer(Xvfb)虚拟帧缓冲器 ,简单来说它可以直接处理 Window 的图形化功能,并且不会输出到屏幕上,这就摆脱了对可视窗口的依赖

sudo apt-get -y install xvfb gtk2-engines-pixbuf
sudo apt-get -y install xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable
sudo apt-get -y install imagemagick x11-apps # 截图功能,可选
Xvfb -ac :99 -screen 0 1280x1024x16 & export DISPLAY=:99
#coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://github.com/")
print(driver.title)  # 输出网页标题

# 参考链接 [1][2]


  1. Linux 配置 Selenium+Chrome+Python 实现自动化测试 ↩︎

  2. 解决 Linux 下出现 Google Chrome does not run as root 问题 ↩︎