我安装了以下内容:
官方Selenium Python网站上有一个名为“Example 0”的示例测试:https://pypi.python.org/pypi/selenium。这是整个测试:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
当我运行它时,它会抱怨“selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities
”
搜索Stack Overflow的解决方案,我发现other suggested solutions,就像这个测试一样:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
cap = DesiredCapabilities().FIREFOX
cap["marionette"] = False
browser = webdriver.Firefox(capabilities=cap, firefox_binary=binary)
browser.get('http://google.com/')
运行它,我收到以下错误:
selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Possible firefox version mismatch. You must use GeckoDriver instead for Firefox 48+. Profile Dir: C:\Users\Username\AppData\Local\Temp\tmp4t_plvms If you specified a log_file in the FirefoxBinary constructor, check it for details.
我有Firefox v59,所以错误说我应该使用GeckoDriver。问题是,上面的第一个测试(“示例0”)使用了GeckoDriver,并且具有“无法找到匹配的一组功能”错误。针对该错误的建议解决方案是在第二次测试中设置“cap["marionette"] = False
”,但该方法失败
我只是无法获胜。我该如何解决这个问题?我想从官方的Selenium Python站点成功运行“Example 0”测试。
(PS这不是一个重复的问题。所有其他类似的问题都有Firefox v54或更早版本,并且能够使用“marionette = False”方法。我使用的是Firefox 59并且无法使用该方法。)
答案 0 :(得分:1)
原来,我有Firefox 64位,Python 3.6 32位和GeckoDriver 32位。