web-dev-qa-db-ja.com

カスタムプロファイルを使用するようにSeleniumを設定しますが、デフォルトで開き続けます

私はpythonとSeleniumを使用してfirefoxのいくつかのタスクを自動化しようとしています。ファイルをダウンロードすると、開くか保存するかを確認するポップアップが表示されます。このたびにこの種類のファイルを使用します。WebPage Fixerにアドオンをインストールしない限り、チェックボックスが機能しないことがわかりました。通常はインストールしていますが、python +アドオンのないプロファイルを使用します。

インターネットから、Firefoxを閉じて/ Applications/Utilitiesを開き、次のコマンドを入力して、別のプロファイルを作成するように指示されました。

/Applications/Firefox.app/Contents/MacOS/firefox-bin -p

次に、Seleniumで使用する新しいプロファイルを作成します。名前を設定し、フォルダー名を変更します。プロファイル名は「PTI_Auto_Profile」です。フォルダパスは次のように表示されます。

/users/User/Library/Application Support/Firefox/Profiles/Selenium/

終わったら。 「Firefoxを起動」をクリックすると、ターミナル画面に次のエラーが表示されます。

2013-04-11 11:57:30.422 firefox-bin[2248:707] invalid drawable
conf-room:~ User$ 2013-04-11 11:58:00.350 firefox-bin[2251:303] invalid drawable

私は次のことを試みましたが成功しませんでした。

profile = webdriver.FirefoxProfile(os.path.expanduser("~/Library/Application Support/Firefox/Profiles/Selenium/"))
driver = webdriver.Firefox(firefox_profile=profile) 

エラーなし、デフォルトのユーザー。

profile = webdriver.FirefoxProfile(os.path.expanduser("~/Library/Application Support/Firefox/Profiles/Selenium/"))
driver = webdriver.Firefox(profile) 

エラーなし、デフォルトのユーザー。

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir",getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv/xls")

driver = webdriver.Firefox(firefox_profile=fp)

エラー:fp.set_preference( "browser.download.dir"、getcwd())NameError:name 'getcwd'は定義されていません

私が間違っていることに関するアイデアはありますか?ありがとうございました!

追伸私はmac os x 10.8.2を使用しています、python 2.7、firefox 20

Corey Goldberg提供のソリューションこれはすべてのExcelバージョンで機能するはずです。

import os
from Selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', ('application/vnd.ms-Excel'))
driver = webdriver.Firefox(profile)
29

エラー:fp.set_preference( "browser.download.dir"、getcwd())NameError:name 'getcwd'は定義されていません

getcwd()は定義されていません。したがって、getcwdモジュールからosが必要だと仮定します。

追加:_import os_、そしてos.getcwd()で呼び出します。

または、この関数のインポートを追加することもできます:_from os import getcwd_

適切なインポートを含むあなたの例:

_import os
from Selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv/xls')
driver = webdriver.Firefox(profile)
_
26
Corey Goldberg

これを追加する必要があります:

profile.set_preference("browser.helperApps.neverAsk.openFile",
    "text/csv,application/x-msexcel,application/Excel,application/x-Excel,application/vnd.ms-Excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml")

動作します!

5
Gili Hary