cat writebug.cn/history

一个开发者的技术博客。

raspberry-debian10-selenium测试

测试环境 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()