这应该很容易,但我遗漏了一些东西。我只想尝试在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
答案 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")
现在我至少可以打开浏览器窗口了!