0
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2);
fp.set_preference("browser.download.manager.showWhenStarting", False);
fp.set_preference("browser.download.dir", self.download_dir);
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv");
self.browser = webdriver.Remote("http://192.168.1.242:4444/wd/hub", 
                                     desired_capabilities=webdriver.DesiredCapabilities.FIREFOX,
                                    browser_profile=fp
                                    )

上記のコードは、指定されたプロファイルを尊重しません。

しかし、以下のコードは期待どおりに動作します:

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

セレンのドキュメント ページhttp://seleniumhq.org/docs/04_webdriver_advanced.html#remotewebdriver には次の例があります。

from selenium import webdriver
fp = webdriver.FirefoxProfile()
# set something on the profile...
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.FIREFOX,    browser_profile=fp)

これは私の例のコードと同じです。また、-firefoxProfileTemplate でセレン サーバーを起動すると、プロファイルの設定が無視されるようです

java -jar ./selenium-server-standalone-2.25.0.jar -firefoxProfileTemplate  /home/xubuntu/.mozilla/firefox/fdui6lsj.crawler/

編集:

また、ファイルからプロファイルをロードすると、次のようになります。

fp = webdriver.FirefoxProfile('/home/xubuntu/.mozilla/firefox/fdui6lsj.crawler/')

self.browser = webdriver.Remote("http://192.168.1.242:4444/wd/hub", 
                                 desired_capabilities=webdriver.DesiredCapabilities.FIREFOX,
                                browser_profile=fp
                                )

プロファイルは読み込まれますが、時間がかかります。

誰かが何が悪いのか教えてもらえますか?

4

1 に答える 1

2

最後に電話update_preferences()してみてください。これにより、構成ファイルの書き込みが強制されます。

fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv");
fp.update_preferences()
于 2012-08-08T08:45:28.973 に答える