1

我有一个名为 WebUtil.Java 的文件src/test/java/com/x/utils。我想运行这段代码:

File firefoxProfileFolder = new File("/../../resources/firefoxprofile");

在这个文件中创建一个变量 firefoxProfileFolder 中的文件夹。

此文件夹 (firefoxprofile) 位于src/test/resources/firefoxprofile. 我正在做的是:

File firefoxProfileFolder = new File("../../../resources/firefoxprofile");

但它不起作用?我究竟做错了什么?我得到的错误是:

org.openqa.selenium.firefox.UnableToCreateProfileException: Given model profile directory does not exist: ../../../resources/firefoxprofile
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 22:18:01'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.7.3', java.version: '1.6.0_35'
Driver info: driver.version: unknown
4

2 回答 2

1

如果您使用的是 Maven,您应该能够使用这样的代码来解析测试资源的绝对路径名:

URL url = getClass().getResource("/firefoxprofile");

if (url == null) {
  // ... not found
} else {
  File firefoxProfileFolder = new File(url.getPath());
  // ...
}
于 2013-01-22T11:02:41.607 回答
0

如果您将其作为测试的一部分运行(假设您是,因为该类位于测试文件夹中),surefire 插件会将 Maven 项目的基本目录设置为系统属性。

String basedir = System.getProperty("basedir");

basedir 变量将具有项目的目录。那么你的原始代码可以写成

File firefoxProfileFolder = new File(basedir + "/src/test/resources/firefoxprofile");
于 2013-01-22T11:16:10.623 回答