java - 无法通过 azure 管道检索下载的文件

标签 java azure azure-devops azure-pipelines azure-pipelines-yaml

我试图在通过 azure 管道运行我的 Selenium 测试时下载 pdf 文件,然后我想检索下载的文件,但在这样做时我遇到了异常

   java.io.FileNotFoundException: /home/vsts/work/1/s/src/test/resources/MyPdf.pdf (No such file or directory)
        at org.apache.pdfbox.io.RandomAccessBufferedFileInputStream.<init>(RandomAccessBufferedFileInputStream.java:99)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1079)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1041)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:989)
   

Selenium 代码:

Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("googlegeolocationaccess.enabled", false);
prefs.put("profile.default_content_setting_values.geolocation", 2); // 1:allow 2:block
prefs.put("profile.default_content_setting_values.notifications", 1);
prefs.put("profile.managed_default_content_settings", 1);
prefs.put("download.default_directory",  System.getProperty("user.dir")+ File.separator + "src" + File.separator + "test" + File.separator + "resources");
chromeOptions.setExperimentalOption("prefs", prefs);

yml 文件:

jobs:
      - job: Test Running
        timeoutInMinutes: 180
        pool:
          vmImage: ubuntu-20.04
        continueOnError: true
        steps:
          - task: Gradle@2
            displayName: Run Tests against UK Region
            inputs:
              gradleWrapperFile: gradlew
              tasks: test

上面的代码在我的 Windows 计算机上运行良好,并保存文件项目目录 (C:\Selenium\src\test\resources),但通过管道,它失败了。

最佳答案

为 selenium 的 download.defaultdirectory 提供的路径与检索文件时出现错误的路径不同。这是因为 System.getProperty("user.dir") 获取当前用户 (vsts) 的主目录,即 /home/vsts.

因此,使用 Selenium 代码中的路径语句,您将得到:/home/vsts/src/test/resources/ 作为默认下载目录。

关于java - 无法通过 azure 管道检索下载的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75173486/

相关文章:

java - 如何在 Java 中创建匹配正则表达式的字符串数组列表?

java - 如何使用注解配置的 MyBatis 指定 IN param 类型

azure - 我应该将所有后端处理分配给辅助角色吗?

azure-devops - FaSTLane 错误 : The software asset has already been successfully delivered

java - 在 HasHMap 中插入元素时出现 IndexOutOfBound 异常

java - 通过 Spring Batch 作业步骤维护作业前对象

linux - 使用自定义 DNS 运行 `git clone`?

c# - Azure DocumentDB异步请求问题

azure - 在 azure 应用服务部署中查找 Azure 插槽位置

TFS 托管构建 Controller - 未找到 Microsoft.TextTemplate.targets