python - Selenium/Python - 旧版本 Firefox (31.8.0esr) 的消息“无法找到匹配的功能集”
问题描述
我需要在 Debian 上使用 FF31esr 和 selenium/python 当使用 FF60esr 做所有事情时 - 一切正常但是当我切换到 FF31esr 时,我收到了这个错误:
selenium.common.exceptions.SessionNotCreatedException:消息:无法找到匹配的功能集
我使用 Debian9 linux,最新版本的 Selenium 和 Geckodriver,默认安装在 debian 上的 Python3.5 Firefox 60.7.0esr,我下载并解压 Firefox 31.8.0 到 /opt/firefox-31.8.0esr/
所以这段代码工作正常(它启动 FF60esr)
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.Firefox()
driver.get('http://google.com')
print(driver.title)
driver.quit()
display.stop()
但是当我执行这段代码时:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
binary = FirefoxBinary('/opt/firefox-31.8.0esr/firefox')
driver = webdriver.Firefox(firefox_binary=binary)
然后我得到:
selenium.common.exceptions.SessionNotCreatedException:消息:无法找到匹配的功能集
我在这里找到了使用 DesiredCapabilities 的 StackOverflow 决定cap["marionette"] = False
- 但它对我不起作用我正在做:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
cap = DesiredCapabilities().FIREFOX
cap["marionette"] = False
binary = FirefoxBinary('/opt/firefox-31.8.0esr/firefox')
browser = webdriver.Firefox(capabilities=cap, firefox_binary=binary)
并得到另一个错误:
selenium.common.exceptions.WebDriverException:消息:浏览器似乎在我们连接之前已经退出。如果您在 FirefoxBinary 构造函数中指定了 log_file,请检查它以获取详细信息。
解决方案
推荐阅读
- python - 使用来自 Tensorflow 的 BERT 模型时出错
- amazon-web-services - AWS MFA 问题 请验证您的 MFA 序列号是否有效并与该用户关联
- terraform - Terraform for 循环未使用变量名
- cassandra - Cassandra 代码 10 - 用于一致性级别的未知代码 65535
- git - 如何在不影响子模块的情况下 git reset --hard HEAD^ 回购根目录
- docker - Docker 容器未压缩大小
- ios - 如何让 iMessage 在 iOS 14+ 模拟器上显示 Xcode 测试的链接气泡?
- flutter - 使用带有 GetX/Obx() 的 Switch() 小部件
- android - 在 Google Play 控制台中更新
- javascript - 将格式为 Sat Dec 30 1899 HH:MM:SS 的 JavaScript 时间戳转换为今天?