1

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

4

3 回答 3

5

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

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

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

于 2017-05-18T22:12:40.527 回答
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);
于 2016-05-26T11:22:01.730 回答
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
于 2016-05-27T09:27:54.140 回答