【问题标题】:How to save file automatically after a new window opens in Selenium在 Selenium 中打开新窗口后如何自动保存文件
【发布时间】:2015-09-09 17:38:44
【问题描述】:

我目前正在网站上生成报告,当我单击导出链接时,它会打开一个新窗口。新窗口打开另一个窗口,询问我是否要使用 excel 打开或保存文件。

我希望它自动将文件保存到我给定的位置。

我可以为其他没有打开新窗口下载的网站执行此操作。

单击导出到 csv 后,弹出“您的下载正在运行..”的窗口。然后弹出保存或打开窗口。

这是我当前的网络驱动器配置文件设置:

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')

谢谢

【问题讨论】:

    标签: python firefox selenium selenium-webdriver


    【解决方案1】:

    问题是,我很确定 browser.helperApps.neverAsk.saveToDisk 设置。

    尝试以下方法:

    profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/plain,text/csv,application/csv,application/vnd.ms-excel,text/comma-separat‌​ed-values,application/excel,application/octet-stream')
    

    而且,这是我们在聊天中实际调试和发现的内容:

    profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/download')
    

    另外,这里有一本关于如何让 firefox 检测 mime-type 并使用它的好书:

    【讨论】:

    • 它不适用于更改。我当前的个人资料设置适用于另一个没有打开新窗口下载的网站。您认为配置文件设置正在转移到新窗口吗?
    • @George 是的,这是一个浏览器首选项 - 它适用于所有窗口。你可以分享这个 csv 文件的链接,以便我测试它吗?谢谢。
    • @George 我也更新了答案,试试text/csv,application/csv mime type。
    • 抱歉,我无法提供链接,因为它需要登录
    • @George 好的,您是否尝试过指定 MS Excel mime 类型?另外,进行完整性检查,您是否将profile 传递给webdriver.Firefox() 构造函数?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多