web-dev-qa-db-ja.com

Selenium Webdriverを使用したWindowsでのFirefoxバイナリへのパスの設定

私は次のコードを持っているブラウザに美しいスープコードを出力するユーティリティ関数を構築しようとしています:

def bs4_to_browser(data):

    from Selenium import webdriver

    driver = webdriver.Firefox(path="F:\FirefoxPortable\Firefox.exe")
    driver.get("about:blank")

    data = '<h1>test</h1>'  # supposed to come from BeautifulSoup
    driver.execute_script('document.body.innerHTML = "{html}";'.format(html=data))

    return

これを実行すると、次のようになります:

TypeError at /providers/
__init__() got an unexpected keyword argument 'path'

Win7を使用しています。ポータブルFirefox実行可能ファイルへのパスを設定するにはどうすればよいですか?

20
user61629

カスタムパスをFirefoxに設定するには、FirefoxBinaryを使用する必要があります。

from Selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('F:\FirefoxPortable\Firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)

または、代わりにF:\FirefoxPortablePATH環境変数に追加し、通常の方法でFirefoxを起動します。

driver = webdriver.Firefox()
19
alecxe

デフォルトでは、Seleniumはパスを調べます-C:\ Program Files(x86)\ Mozilla Firefox \

リンクを使用してFirefoxをインストールしてください- http://filehippo.com/download_firefox/67599/ を試してください

このため、バイナリを提供する必要はありません。

Firefoxをカスタムの場所にインストールする場合は、場所を求めてポップアップ表示されたときに、希望どおりにディレクトリを指定します。カスタムの場所にインストールした場合、以下のようにコード内でFirefoxのバイナリの場所を指定する必要があります

from Selenium import webdriver
from Selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
fp = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp)
4
Karthikeya

たとえば、chromeドライバを既に here からダウンロードしている場合、次のようにパスを指定できます。

from Selenium import webdriver
driver = webdriver.Chrome(r'D:\\chromedriver.exe')
0
user1767754