JAVA硒。文件上传另一个

JAVA硒。文件上传另一个,java,selenium,file-upload,selenium-webdriver,Java,Selenium,File Upload,Selenium Webdriver,在我的情况下,工作方法如下。 我现在使用Windows,但在编写了一些测试之后,希望将其传输到*nix环境。一些酷家伙说这条路一定是抽象的 driver.findElement(By.id("admin_offer_kind_logo")).sendKeys("C:\\Path\\To\\File"); 但我尝试: driver.findElement(By.id("admin_offer_kind_logo")).sendKeys(System.getProperty("user.dir")

在我的情况下,工作方法如下。 我现在使用Windows,但在编写了一些测试之后,希望将其传输到*nix环境。一些酷家伙说这条路一定是抽象的

driver.findElement(By.id("admin_offer_kind_logo")).sendKeys("C:\\Path\\To\\File");
但我尝试:

driver.findElement(By.id("admin_offer_kind_logo")).sendKeys(System.getProperty("user.dir")+"\\src\\test\\resources\\Koala.jpg");

它不想上传这个该死的文件

@Test
public void FileFinding() {
    String file = System.getProperty("user.dir");
    System.out.print("FilePath:  ");
    System.out.println(file);
}
以上代码打印:
FilePath:C:\SeleniumTests\FirstWebDriverTest

项目中我的文件的完整路径为:

C:\SeleniumTests\FirstWebDriverTest\src\test\resources\Koala.jpg

您可以使用com.google.common.io.Resources从资源文件夹中获取文件

String filePath = "Koala.jpg";
URL resource = Resources.getResource(filePath);
String uploadFullPath = resource.toURI().getPath();

或者参考

中的逻辑,在一个好人的帮助下,找到了两种工作方法:

    @Test
        public void FileFinding_Right_One() {
        String file = getClass().getClassLoader().getResource("Koala.jpg").getFile();
        System.out.println(file.substring(1,file.length()));
}
    @Test
        public void File_Finding_Right_Second
        File f = new File("src/test/resources/Koala.jpg");
        System.out.println(f.getAbsolutePath());
}
    @Test
        public void FileFinding_Right_One() {
        String file = getClass().getClassLoader().getResource("Koala.jpg").getFile();
        System.out.println(file.substring(1,file.length()));
}
    @Test
        public void File_Finding_Right_Second
        File f = new File("src/test/resources/Koala.jpg");
        System.out.println(f.getAbsolutePath());
}