测试环境 Raspbian GNU/Linux 10 (buster)
经过搜索发现firefox的geckodriver官方不支持arm. 所以只能选择chromium浏览器.
安装依赖
sudo apt install python3-selenium
sudo apt install python3-pyvirtualdisplay # 由于raspberry没有启动图形界面, 这个用来虚拟显示器
sudo apt install python3-xvfbwrapper
sudo apt install xvfb
sudo apt install chromium-browser chromium-chromedriver
sudo apt install bluealsa # chromium-browser 启动时会报告缺少这个包
命令行启动chromium-browser测试
Xvfb -ac :7 -screen 0 1280x1024x8 -extension RANDR -nolisten inet6 &
export DISPLAY=:7
chromium-browser
# 发现启动失败, 报告缺少`bluealsa`, 另外想在root用户下运行, 还需要加上`--no-sandbox`参数
# 安装上软件, 加上参数后测试, root用户ssh命令行启动chromium-browser已经不报错
然后执行测试代码, 成功
python3 test.py
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start() # 开启虚拟GUI
options = webdriver.ChromeOptions()
options.add_argument("--remote-debugging-port=9222")
options.add_argument("--no-sandbox")
chrome = webdriver.Chrome(executable_path="/usr/bin/chromedriver", options=options)
chrome.fullscreen_window()
chrome.get('https://www.jd.com/')
chrome.save_screenshot("chrome_jd.png")
chrome.quit()