Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Firefox驱动程序、Selenium、python下载XML文件_Python_Selenium_Firefox - Fatal编程技术网

如何使用Firefox驱动程序、Selenium、python下载XML文件

如何使用Firefox驱动程序、Selenium、python下载XML文件,python,selenium,firefox,Python,Selenium,Firefox,我正在编写一个脚本,使用Selenium从基于MediaWiki的网站的导出页面导出XML备份 我希望将XML文件下载到一个目录中,绕过通常询问如何处理该文件的弹出窗口 下载.xml文件时,当我查看网络选项卡时,我看到(在响应标题下)内容类型为application/xml;字符集=utf-8 在阅读了一些答案以及之后,我正在使用: fp = webdriver.FirefoxProfile() fp.set_preference("browser.preferences.insta

我正在编写一个脚本,使用Selenium从基于MediaWiki的网站的导出页面导出XML备份

我希望将XML文件下载到一个目录中,绕过通常询问如何处理该文件的弹出窗口

下载.xml文件时,当我查看网络选项卡时,我看到(在响应标题下)内容类型为application/xml;字符集=utf-8

在阅读了一些答案以及之后,我正在使用:

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.preferences.instantApply",True)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/plain, application/octet-stream, text/xml, application/xml")
fp.set_preference("browser.helperApps.alwaysAsk.force",False)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.folderList",2)
    
driver = webdriver.Firefox(firefox_profile=fp, executable_path=r'C:\Python37\geckodriver.exe')
(...)
download_button.click()
但是,窗口仍然会弹出,文件不会在任何地方下载

我确保更新Selenium和geckodriver

我做错了什么


谢谢大家!

我认为应该将元组作为参数传递,如下所示:

fp.set_preference('browser.helperApps.neverAsk.saveToDisk', (text/plain, application/octet-stream, text/xml, application/xml))
它对我有用。
PS:别理我的蹩脚英语,我是巴西人。

经过多次尝试和错误,我终于成功了(这是Java,但应该可以转换成Python):

profile.setPreference(“browser.download.viewableinternal.previousHandler.alwaysAskBeforeHandling.xml”,false);
setPreference(“browser.download.viewableinternal.previousHandler.preferredAction.xml”,0);
setPreference(“browser.download.viewableinternal.typewasregisted.xml”,true);