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