在 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) # 输出网页标题 |