我刚刚升级到 Ubuntu 23.04,我的 Python 代码失败了(以前可以在版本 22 上运行)。
如果我运行这个片段:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.google.com/')
driver.quit()
我得到:
selenium.common.exceptions.InvalidArgumentException:消息:二进制文件不是 Firefox 可执行文件
Firefox 版本为 119,geckodriver 版本为 0.33.0。
当我给它一个明确的 Firefox 路径时:
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.firefox.options import Options as FirefoxOptions
options = FirefoxOptions()
options.binary = FirefoxBinary('/snap/bin/firefox')
driver = webdriver.Firefox(options=options)
driver.get('http://www.google.com/')
driver.quit()
结果是一样的。
如果我从命令行启动 Firefox
/snap/bin/firefox
它开始很好,但给出了一些警告:
Gtk-消息:07:42:43.330:无法加载模块“xapp-gtk3-module” Gtk-消息:07:42:43.433:无法加载模块“canberra-gtk-module”
这里可能出了什么问题?
我通过删除 firefox snap 并通过 apt 安装它来解决问题,如中所述 https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-deb-apt-ubuntu-22-04
这对于 Ubuntu 23 来说非常有效。