Linux-arm64平台下Selenium可用运行配置咨询
树莓派Ubuntu环境下Selenium浏览器自动化适配问题
我写了一个简单程序,能按设定间隔用Firefox打开并关闭网站,在Intel Mac OS Ventura上运行正常,但在搭载Ubuntu 22.04.3 LTS的树莓派上始终找不到兼容的Selenium、geckodriver/chromedriver与Firefox/Chromium版本组合,无法正常运行。
Mac端可行配置
- Selenium 4.11.2
- geckodriver v0.33.0
- Firefox 115.0.3
Firefox适配尝试
经确认,Selenium Manager在linux-arm64架构下无法工作,而树莓派正采用该架构。即使在代码中指定驱动路径且驱动已加入系统PATH,仍会收到Selenium提示找不到驱动的错误,开发者指出内置的Selenium Manager是问题根源。由于Selenium Manager在Selenium 4.6版本引入,我回退至Selenium 4.5并适配代码,但又出现驱动与Firefox版本不兼容的错误,尝试多种版本组合均未解决。
Chrome/Chromium适配尝试
转而尝试Chrome时发现,谷歌未提供linux-arm64版本的chromedriver,于是使用第三方发布的不同版本chromedriver,并回退Chromium版本,虽能启动Chromium浏览器,但程序仍无法完全正常运行。期间查阅大量Stack Overflow相关问题的解答,均未起到帮助。
Mac端可正常运行的代码
import datetime, logging, time from selenium import webdriver logger = logging.getLogger('selenium') logger.setLevel(logging.DEBUG) handler = logging.FileHandler("handler.log") logger.addHandler(handler) logging.getLogger('selenium.webdriver.remote').setLevel(logging.DEBUG) logging.getLogger('selenium.webdriver.common').setLevel(logging.DEBUG) logging.basicConfig(filename="program.log", level=logging.INFO) timeStarted = datetime.datetime.now() logging.info( timeStarted.strftime("%m/%d/%Y, %H:%M:%S") + " started on https://google.com" ) # Program starts here while True: timeOfRequest = datetime.datetime.now() try: browser = webdriver.Firefox() browser.get("https://google.com") logging.info( timeOfRequest.strftime("%m/%d/%Y, %H:%M:%S") + " Success" ) except: logging.exception( timeOfRequest.strftime("%m/%d/%Y, %H:%M:%S") + " Something went wrong" ) time.sleep(810) browser.quit() time.sleep(30)
内容的提问来源于stack exchange,提问作者JoeyChords
相关产品推荐
相关产品推荐

