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

参考链接

Linux配置Selenium+Chrome+Python实现自动化测试

解决Linux下出现Google Chrome does not run as root问题

Last modification:June 2nd, 2020 at 11:19 pm
如果觉得我的文章对你有用,请随意赞赏