我正在使用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());
答案 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的路径。