我想自动下载文件并将其保存在目录中,一切都已完成,但是firefox仍然保存用户下载文件夹中的文件,例如C:\users\root\Downloads
PyWebBot类中的函数
@staticmethod
def FirefoxProfile(path, handlers):
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList",1)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference("browser.download.dir", path)
profile.set_preference("browser.download.downloadDir", path)
profile.set_preference("browser.download.defaultFolder", path)
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", handlers)
profile.set_preference("pdfjs.disabled", True)
profile.update_preferences()
return profile
然后
def setUp(self):
self.profile = PyWebBot.FirefoxProfile(config['downloads'], config['handlers'])
self.driver = webdriver.Firefox(self.profile)
...
...
配置:
config['downloads'] = 'Q:/web2py_src/web2py/applications/internet2letter/private/testing/selenium/downloads'
config['handlers'] = 'application/pdf'
答案 0 :(得分:15)
解决此问题的方法有几种,
os.path.exists
或os.isfile
Firefox
时,请导航至about:config
并查看查找browser.download.dir
,以确保有更改。profile.set_preference
(profile.set_preference("browser.download.folderList",2
)有2
作为第二个参数,因为0
表示要下载到桌面,1
表示要下载到默认的“下载”目录,2
表示使用您在“browser.download.dir”中指定的目录