我试图在通过 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/