在机器人框架中设置默认文件上传文件夹(目录)

时间:2019-02-10 17:06:43

标签: python selenium google-chrome automation robotframework

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

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

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

我的尝试:

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

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

下面的屏幕快照供参考。

enter image description here

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

终于找到了使用Open Browser Keyword更改下载目录的解决方法

   ${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