Selenium - Java:如何获取文件的绝对路径
Selenium - Java: How to get absolute path to the file
我创建了获取绝对路径的方法,但是在调试时我得到了应该上传的文件的错误路径。
那么,获取绝对路径的方法:
public String getFilePathByFormat(String filePath) {
File file = new File(filePath);
return file.getAbsolutePath();
}
那我在一般的低级上传方法中使用这个方法:
public void uploadFile(WebElement webElement, String filePath){
try {
webDriver.manage().timeouts().implicitlyWait(40, SECONDS);
webElement.sendKeys(getFilePathByFormat(filePath));
}catch (Exception e){
printErrorAndStopTest();
}
}
当我调试和评估不正确的路径时得到:
E:\acceptance-tests\src\test\resources, 但是在磁盘名称之后,应该多一个文件夹 - 项目所在的位置。
怎么了?为什么 getAbsolutePath 没有建立正确的路径?
谢谢
文件系统中有两种文件路径。
1) 绝对路径总是从根元素开始 并且包含定位文件所需的完整目录列表。例如,Unix 系统上的 '/Users/username/filename.txt' 或 Windows 系统上的 'C:\Users\username\filename.txt'。
相对路径没有任何目录列表,需要与另一个路径组合才能访问文件。例如,username/filename.txt 是相对路径;请注意,它的开头没有任何正斜杠或反斜杠。
getAbsolutePath() returns 文件的绝对路径,如下所示。
使用绝对路径名创建文件对象 - 此方法只是 returns 提供的用于创建文件的路径名。 并且在 Windows 系统的情况下,如果驱动器名称不存在于给定的绝对路径名中,默认情况下会在开头附加驱动器名称。
文件对象是使用相对路径创建的 - 这里的相对路径名通过根据当前用户目录进行解析而成为绝对路径。
本例中传递的是绝对路径'/acceptance-tests/src/test/resources/test4.pdf';如 windows 系统所述,驱动器详细信息以给定路径为前缀并作为绝对路径返回。
要使其工作,您可以传递文件的相对路径 'src/test/resources/test4.pdf' 或者只传递文件名 'test4.pdf'.
我创建了获取绝对路径的方法,但是在调试时我得到了应该上传的文件的错误路径。
那么,获取绝对路径的方法:
public String getFilePathByFormat(String filePath) {
File file = new File(filePath);
return file.getAbsolutePath();
}
那我在一般的低级上传方法中使用这个方法:
public void uploadFile(WebElement webElement, String filePath){
try {
webDriver.manage().timeouts().implicitlyWait(40, SECONDS);
webElement.sendKeys(getFilePathByFormat(filePath));
}catch (Exception e){
printErrorAndStopTest();
}
}
当我调试和评估不正确的路径时得到: E:\acceptance-tests\src\test\resources, 但是在磁盘名称之后,应该多一个文件夹 - 项目所在的位置。
怎么了?为什么 getAbsolutePath 没有建立正确的路径? 谢谢
文件系统中有两种文件路径。
1) 绝对路径总是从根元素开始 并且包含定位文件所需的完整目录列表。例如,Unix 系统上的 '/Users/username/filename.txt' 或 Windows 系统上的 'C:\Users\username\filename.txt'。
相对路径没有任何目录列表,需要与另一个路径组合才能访问文件。例如,username/filename.txt 是相对路径;请注意,它的开头没有任何正斜杠或反斜杠。
getAbsolutePath() returns 文件的绝对路径,如下所示。
使用绝对路径名创建文件对象 - 此方法只是 returns 提供的用于创建文件的路径名。 并且在 Windows 系统的情况下,如果驱动器名称不存在于给定的绝对路径名中,默认情况下会在开头附加驱动器名称。
文件对象是使用相对路径创建的 - 这里的相对路径名通过根据当前用户目录进行解析而成为绝对路径。
本例中传递的是绝对路径'/acceptance-tests/src/test/resources/test4.pdf';如 windows 系统所述,驱动器详细信息以给定路径为前缀并作为绝对路径返回。
要使其工作,您可以传递文件的相对路径 'src/test/resources/test4.pdf' 或者只传递文件名 'test4.pdf'.