(このサイトを検索した後に)ウィンドウファイルマネージャにファイルパスを入力するメソッドを作成しました。これはうまく機能しましたが、テストケースを拡張してファイルの場所の配列をループし、テストファイルをWebアプリケーションに渡して、正しく処理されているかどうかをテストしたいと考えました。文字列の配列を反復処理する - ファイルパスを渡すSelenium
私は2番目のパス(私は2つのテストファイルを持っています)では、Windowsハンドラメソッドがファイル名を入力したくないという問題が発生しています。私のコードをスキャンして正しい方向に向けることができますか?ここで
は、Windowsのファイルマネージャの方法であって、ここで
public class WindowsFileSystemHandler {
String filepath;
public void enterfilepath(String pfilepath) throws Exception{
filepath = pfilepath;
StringSelection ss = new StringSelection(filepath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = new Robot();
//robot.keyPress(KeyEvent.VK_ENTER);
//robot.keyRelease(KeyEvent.VK_ENTER);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
Thread.sleep(2000);
}
}
はテストです:
WindowsFileSystemHandler file = new WindowsFileSystemHandler();
String[] fileloc = {"d:\\JW\\testfiles\\scribbles.txt", "d:\\JW\\testfiles\\earth_large_file_size.jpg"} ;
for(int i =0 ; i<2; i++){
Thread.sleep(2000);
try {
//WindowsFileSystemHandler file = new WindowsFileSystemHandler();
file.enterfilepath(fileloc[i]);
System.out.println(fileloc[i]);
System.out.println(i);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String testfiletype = driver.findElement(By.xpath(".//*[@id='SFI_control']/div[2]/div[2]")).getText();
System.out.println(testfiletype);
ProfilePage.is_file_validation_successful(testfiletype);
}//end of for loop
次のようにIncidentlyコンソール出力は次のとおりです。
d:\JW\testfiles\scribbles.txt
0
Invalid file type.
true
Test to see if system correctly rejects invalid file type was successful
d:\JW\testfiles\earth_large_file_size.jpg
1
Invalid file type.
true
Test to see if system correctly rejects invalid file type was successful
はおそらく愚かなものです私は行方不明です。