如何在上传文件时使用相对路径

时间:2015-09-20 10:49:46

标签: eclipse selenium-webdriver image-uploading sendkeys

我正在使用Selenium WebDriver进行自动测试。我目前的任务是上传文件。 我使用以下代码来获取不可见元素,sendKeys那里

    WebElement elem = driver.findElement(By.id("profileImage"));
    String js = "arguments[0].style.height='auto'; arguments[0].style.visibility='visible'; arguments[0].style.display='block';";
    ((JavascriptExecutor) driver).executeScript(js, elem);
 elem.sendKeys("C:\\back.JPG");

我想将文件保存在项目文件夹中。如何使用文件的相关路径?

以下两种方法都返回Eclipse文件夹:

    System.getProperty("user.dir"));
    new java.io.File("").getAbsolutePath());

1 个答案:

答案 0 :(得分:0)

在Python中:

import os


picture_path = os.path.abspath("pictures/profileImage.jpg")

upload_input = driver.find_element_by_id("profileImage")
upload_input.send_keys(picture_path)

在Java中:我没有测试它,但我认为这是一个解决方案:

import java.io.File;


File classpathRoot = new File(System.getProperty("user.dir"));
File picturesDir = new File(classpathRoot, "/pictures");
File picture = new File(picturesDir, "profileImage.jpg");
String picturePath = picture.getAbsolutePath();

WebElement uploadInput = driver.findElement(By.id("profileImage"))
uploadInput.sendKeys(picturePath);

如果编译以下代码(javac ProjectPath.java):

public class ProjectPath {
    public static void main(String[] args) {
        System.out.println(System.getProperty("user.dir"));
    }
}

然后执行java ProjectPath这将返回包含ProjectPath.java文件的directoy的路径。