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)

在 seleniums 文档页面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 启动 selenium 服务器时,它似乎忽略了配置文件的设置

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 回答