我们有一个Web应用程序,其中可以上传附件(文件-JPG,PDF或任何其他文件)。 现在要上传这些文件,这些文件需要保存在文件夹中: C:\ Users \ username ,以便chrome浏览器在执行自动化测试期间自动上传它们。
我们要从自定义和通用文件夹上传JPG文件,以便上传与路径无关。 有什么方法可以指定chrome选择一个特定的文件夹来上传这些文件(例如:要从 C:\ TestData 文件夹中上传文件),而不依赖于登录用户?
所以我的问题是如何在Chrome浏览器中设置默认文件上传路径,以便可以从该默认目录(文件夹)中拾取所有文件进行上传。
我的尝试:
通过脚本重新启动chrome浏览器后,仍然继续引用 C:\ Users \ username ,而不是chrome设置中指定的自定义路径。
下面的屏幕快照供参考。
答案 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