如何使用selenium2library检查文件是否从浏览器下载

时间:2016-05-26 10:43:03

标签: selenium-webdriver robotframework selenium2library

有人可以帮助我如何使用selenium2library,RobotFramework检查文件是否已从浏览器下载。在我当前的测试中,我可以单击下载按钮并且文件正在下载但如果文件没有获得会发生什么单击下载的eventhough按钮。任何示例代码都很有帮助。

3 个答案:

答案 0 :(得分:5)

在Chrome中我打开chrome://downloads页面,然后从shadow DOM中检索下载的文件列表,如下所示:

const docs = document
  .querySelector('downloads-manager')
  .shadowRoot.querySelector('#downloads-list')
  .getElementsByTagName('downloads-item');

此解决方案仅限于chrome,数据还包含文件路径和下载日期等信息。

答案 1 :(得分:2)

查看此链接 - http://ardesco.lazerycode.com/testing/webdriver/2012/07/25/how-to-download-files-with-selenium-and-why-you-shouldnt.html

此外,这里有关于如何将文件自动下载到特定目录的方法 -

FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("browser.download.folderList",2);
profile.SetPreference("browser.download.dir", @"c:\path\to\downloads \folder");   
FirefoxDriver driver = new FirefoxDriver(profile);

答案 2 :(得分:0)

你可以使用以下python函数下载文件而不显示对话框。

此外,您可以设置首选项,不应显示哪种类型的文件保存文件对话框。

def create_profile():
    from selenium import webdriver
    fp =webdriver.FirefoxProfile()
    fp.set_preference("browser.download.folderList",2)
    fp.set_preference("browser.download.manager.showWhenStarting",False)
    fp.set_preference("browser.download.dir",'C:/Users/mra001/Downloads/Cambium_Builds')
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk",'text/csv/xls')
    fp.update_preferences()
    return fp.path