java - 下载文件(节点上有chrome)并将其保存到服务器文件系统上

标签 java google-chrome selenium

我必须测试单击链接时是否下载 pdf 文件。 我设置了一个默认文件夹,以便能够使用 selenium 下载它们,但我需要保存服务器而不是节点的这些文件。

chromePrefs.put("download.default_directory", "C:\\SOIF\\Temp\\downloads");
options.setExperimentalOption("prefs", chromePrefs);

我尝试使用:

((RemoteWebDriver) getWebDriver()).setFileDetector(new LocalFileDetector())

但这仅在我尝试使用节点从服务器上传文件时才有效。

如果不在服务器上设置默认下载文件夹,这是否可能?

最佳答案

您需要从您的服务器共享一个文件夹。然后使用映射驱动器号映射所有节点,映射完成后。您可以在所有测试中使用该路径进行下载以及测试文件是否已下载

Z: 是最常用的,但您可以将其与任何其他字母驱动程序一起使用。然后仅使用这些路径。

@DebanjanB 提到的示例“Z:\\shared_server_path\\SOIF\\Temp\\downloads”

编辑-1

如果您需要为每个测试用例单独下载,那么您可以选择执行以下操作。在启动 Webdriver 之前,生成 UUID 字符串并将其附加到您的下载文件夹

`"Z:\\shared_server_path\\SOIF\\Temp\\downloads\\fd411526-e3aa-43b1-a351-e484da4508d9"`

创建此文件夹并以此作为下载目录启动网络驱动程序。测试完成后,您始终可以知道测试用例名称是什么。创建目录

“Z:\\shared_server_path\\SOIF\\Temp\\downloads\\TestCase1”

并将文件移动到该文件夹​​。这是我能想到的可行的解决方案

关于java - 下载文件(节点上有chrome)并将其保存到服务器文件系统上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45792138/

相关文章:

java - 如何在 Selenium-Java Webdriver 测试项目中指定 Java 类的执行顺序

javascript - Ajax 参数在传递到 Java Controller 时会被加密

java - 无法将 Jasypt 加密密码保存到 .properties 文件

java - 如何使用 selenium webdriver-Java 验证页面中显示的错误消息

css - Chrome : Having an HTML5 video position: fixed or absolute causes all background-attachment: fixed to break

javascript - jQuery 代码在 Chrome 上不起作用

java.lang.ClassNotFoundException : WebDriver API 异常

java - 如何通过 Lambda 函数重命名列 - fastXML

java - BindException 多线程服务器

google-chrome - 我们可以在不使用 GCM/FCM 的情况下在 chrome 中进行网络推送通知吗?