selenium - 无法解决如何让FireFox WebDriver工作

时间:2017-10-24 10:13:33

标签: python-3.x selenium firefox

这应该很容易,但我遗漏了一些东西。我只想尝试在firefox上运行一些selenium python测试,它在chrome中完美运行。

问题只是试图启动并运行ff webdriver!

我有以下代码,所有路径都是正确的:

import selenium
from selenium.webdriver.firefox import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
profile = webdriver.FirefoxProfile()
geckopath = 'C:\source\web_deploy_tests\geckodriver.exe'
browser = selenium.webdriver.Firefox(
    capabilities={},
    executable_path=geckopath,
    firefox_profile=profile,
    firefox_binary=binary
)
browser.get("http://google.com")

我使用的是Python 3.6.2,selenium 3.6.0和geckodriver.exe的v0.19.0,FF是v56.0.1。

当我运行上面的代码时,firefox出现但只是在那里坐了大约30秒然后崩溃:

  

selenium.common.exceptions.WebDriverException:消息:无法加载   轮廓。可能的firefox版本不匹配。你必须使用GeckoDriver   而不是Firefox 48+。简介目录:   C:\ Users \ ADMINI~1 \ AppData \ Local \ Temp \ 3 \ tmpkx5dau8h如果指定了   FirefoxBinary构造函数中的log_file,检查它是否有详细信息。

我尝试过args的各种组合,但我失败了。

有什么想法吗? TIA

1 个答案:

答案 0 :(得分:0)

我通过传递DesiredCapabilities.FIREFOX

来实现它
import selenium
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver.firefox import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
profile = webdriver.FirefoxProfile()
geckopath = 'C:\source\web_deploy_tests\geckodriver.exe'
browser = selenium.webdriver.Firefox(
    capabilities=**DesiredCapabilities.FIREFOX**,
    executable_path=geckopath,
    firefox_profile=profile,
    firefox_binary=binary
)
browser.get("http://google.com")

现在我至少可以打开浏览器窗口了!