【问题标题】:Setting default file upload folder (directory) in robot framework在机器人框架中设置默认文件上传文件夹(目录)
【发布时间】:2019-07-04 06:08:17
【问题描述】:

我们有一个网络应用程序,它可以在其中上传附件(文件 - JPG、PDF 或任何其他)。 现在要上传这些文件,这些文件需要保存在文件夹中:C:\Users\username,以便 chrome 浏览器在测试自动化执行期间自动上传它们。

我们希望从自定义和通用文件夹上传 JPG 文件,以便上传独立于路径。 有什么方法可以让我们指定 chrome 来选择一个特定的文件夹来上传这些文件(例如:从文件夹 C:\TestData 上传文件),而与登录的用户无关?

所以我的问题是如何在 Chrome 浏览器中设置默认文件上传路径,以便从该默认目录(文件夹)中提取所有文件进行上传。

我的尝试:

  1. 在自动化脚本中启动了 chrome 浏览器。
  2. 在 Chrome 中:“设置”然后搜索“下载”
  3. 然后将“下载”位置更改为通用路径。

通过脚本重新启动chrome浏览器后,仍然继续引用C:\Users\username,而不是chrome设置中指定的自定义路径。

以下截图供参考。

【问题讨论】:

    标签: python selenium google-chrome automation robotframework


    【解决方案1】:

    终于找到解决办法,使用打开浏览器关键字更改下载目录

       ${prefs} =    Create Dictionary    download.default_directory=C:\\Balaji
       Open Browser    https://www.google.com/    chrome    
       options=add_experimental_option("prefs",${prefs})
       Maximize Browser Window
       Set Browser Implicit Wait    20
    

    【讨论】:

      【解决方案2】:

      每次 selenium 启动浏览器时,它都会使用新的配置文件 - 因此当您更改其中的设置时,下次运行自动化时它们不会出现。

      以下是如何设置浏览器的下载位置 - 保存任何流式传输的文件夹(我在此强调,因为您似乎可以互换使用上传/下载)。您创建一个特殊的设置字典,并在创建驱动程序时传递它:

      ${chromeOptions}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
      ${prefs} =    Create Dictionary    download.default_directory=c:\\your\\directory
      Call Method    ${chromeOptions}    add_experimental_option    prefs    ${prefs}
      Create Webdriver    Chrome    chrome_options=${chromeOptions}
      
      

      显然,您要查找的设置是 download.default_directory 之一。

      【讨论】:

      • 谢谢托多。但是我想设置默认上传目录
      • 嗯,您确实放了下载设置的屏幕截图,并在问题中谈到了它。那么主题 - 没有默认上传目录之类的东西。每次上传文件时,都提供完整的文件路径;在您的情况下,请在案例中指定“C:\\TestData\\file.txt”。如果你不这样做,但只给出一个文件名,我它是相对于当前工作目录的 - 运行你的脚本的 python 解释器(可能)。
      猜你喜欢
      • 2017-12-07
      • 2013-02-13
      • 2015-01-04
      • 1970-01-01
      • 2017-09-16
      • 2018-03-13
      • 1970-01-01
      • 2019-01-30
      • 2020-08-30
      相关资源
      最近更新 更多