我有这个代码
File folder = new File("F:\\gals");
File[] listOfFiles = folder.listFiles();
此代码返回文件夹F:\ gals中所有文件的位置数组,我尝试在selenium代码中使用此位置
driver.findElement(By.id(id1)).sendKeys(listOfFiles[1]);
我发现错误
The method sendKeys(CharSequence...) in the type WebElement is not applicable for the arguments (File)
所以我认为我必须将listOfFiles []转换为String数组,请告诉我简单的方法。谢谢
答案 0 :(得分:12)
您无需转换整个数组。只需拨打File
的{{1}}方法:
getAbsolutePath()
但是如果你想转换整个数组,这里有 Java 8 方法(由@RemigiusStalder简化):
driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getAbsolutePath());
答案 1 :(得分:7)
只需拨打File.list()
即可。
答案 2 :(得分:3)
我认为,您不需要将File []转换为String []
只需使用您的文件阵列:
driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getName());
或者,如果您想发送完整的文件路径:
driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getPath());
答案 3 :(得分:2)
如果您只想要名字:
String [] fileNames new String[listOfFiles.length];
for (int i = 0; i < listOfFiles.length; i++) {
fileNames[i] = listOfFiles[i].getName();
}
如果您需要完整路径:
String [] fileNames new String[listOfFiles.length];
for (int i = 0; i < listOfFiles.length; i++) {
fileNames[i] = listOfFiles[i].getPath();
}
答案 4 :(得分:2)
另一种方式:这只是一个将File数组转换为String数组的静态辅助方法:
private static String[] convertFromFilesArray(File[] files){
String[] result = new String[files.length];
for (int i = 0; i<files.length; i++){
result[i] = files[i].getAbsolutePath();
}
return result;
}
答案 5 :(得分:1)
为什么你不能尝试这个?
driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getName());