2017-12-12 11 views
2

PythonでSeleniumを入手してFirefox Webブラウザを起動できないため、ここにいくつかのバージョンが必要です。私は古いバージョンのFirefoxを使用しています。なぜなら、ここの他の人たちも同じ古いバージョンのPythonを持っていて、古いバージョンのFirefoxが最も効果的だからです。"SeleniumとPythonで一致する機能を見つけることができません"

コード:

from selenium import webdriver 
from selenium import common 
from selenium.webdriver import ActionChains 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import TimeoutException 
from selenium.common.exceptions import NoSuchElementException 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
driver=webdriver.Firefox(capabilities=DesiredCapabilities.FIREFOX) 

エラー:

Traceback (most recent call last): 
    File "scrapeCommunitySelenium.py", line 13, in <module> 
    driver=webdriver.Firefox(capabilities=DesiredCapabilities.FIREFOX) 
    File "/Library/Python/2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 158, in __init__ 
    keep_alive=True) 
    File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session 
    response = self.execute(Command.NEW_SESSION, parameters) 
    File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute 
    self.error_handler.check_response(response) 
    File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities 

バージョン情報:

  • のPython 2.7.10
  • セレン3.8.0
  • Firefoxの46.0
  • GeckoDriver 0.19.1(それは私のPATH環境変数にあるフォルダ内にあります)
  • のMacOS 10.12.6
+0

は、ローカルグリッド上でそれを実行しているかしていますか? –

+0

ローカルで実行しています。 –

答えて

2

:Falseに設定マリオネットを持っているあなたの能力を更新します。しかし、あなたは次のようにDesiredCapabilities()を通じてFalseに機能marionetteを設定する必要がFirefox v46.0を使用している再びとして:

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 

cap = DesiredCapabilities().FIREFOX 
cap["marionette"] = False 
browser = webdriver.Firefox(capabilities=cap, executable_path="C:\\path\\to\\geckodriver.exe") 
browser.get('http://google.com/') 
browser.quit() 
+2

私たちは勝者を持っています!どうもありがとうございます! –

2

あなたがGeckodriverを使用するつもりなら、あなたは間違いなくの新しいバージョンを使用する必要がありますFirefox。 Frex:https://github.com/mozilla/geckodriver/releases/tag/v0.19.0はFF55以上を示します。

FF46を使用する予定の場合は、geckodriverを使用しないでください。あなたはSelenium 3.8.0を使用しているとして、あなたが強制的GeckoDriverを使用する必要が

caps = DesiredCapabilities.FIREFOX.copy() 
caps['marionette'] = False 
driver=webdriver.Firefox(capabilities=caps) 
+0

マリネットをFalseに設定すると、このトリックを行うようです。ありがとうございました! –

関連する問題