2017-07-31 26 views
0

Webサイトで見積もりを取得するためのセレンスクリプトがあり、アップロードファイルを取得し、要素をクリックしてファイルアップロードウィンドウを開きます。私のAutoItスクリプトは以下の通りで、手動で実行すると動作します。自動実行スクリプトはJavaランタイムで実行されません

WinWait("[CLASS:#32770]","",10) 
ControlFocus("File Upload", "", 1148) 
Sleep(2000) 
ControlSetText("File Upload", "", 1148, "C:\Users\kmaklakova\IdeaProjects\WizardLabelsRegression\vector.jpg") 
Sleep(2000) 
ControlClick("File Upload", "", 1) 

私はそれがECITコードで終了Javaランタイム中にそれを実行しようとすると1

uploadArea1.click(); 

    Process p = Runtime.getRuntime().exec("C:\\AutoIt3\\new.exe"); 
    p.waitFor(); 
    if (p.exitValue()==1) { 
     System.out.println("YAY!"); 
    } 
    else { 
     System.out.println("boo"); 
    } 
    label1Name.setValue("test"); 

理由が何であるか、誰もが知っていますか?

答えて

1

プロセス "Runtime.getRuntime()。exec(" C:\ AutoIt3 \ new.exe "); を使用せずにautoITを実行しようとしましたが、アップロードされた。

をファイルには、私だけではなく、アップロードファイルのスクリプトの実装について「CMD」コマンドを実行しているについて話していることに注意してください。

+0

はい、私は両方のことを行いましたが、それは同じことです。 –

+0

次のようにして、 "\\"をthis /に置き換え、Thread.sleep()を使用したことを確認できます。 –

+0

だから、\\を/に変更して追加しました。 Thread.sleep(5000); uploadArea1.click(); Thread.sleep(5000); Runtime.getRuntime()。exec( "C:/AutoIt3/new.exe");それでも同じです –

1

あなたは要素をクリックした後、いくつかの睡眠を配置する必要があります。ここで変更されたコード:

uploadArea1.click(); 
Thread.sleep(5000); 
Process p = Runtime.getRuntime().exec("C:\\AutoIt3\\new.exe"); 
p.waitFor(); 
if (p.exitValue()==1) { 
    System.out.println("YAY!"); 
} 
else { 
    System.out.println("boo"); 
} 
label1Name.setValue("test"); 

このコードを実行すると、チャームのように機能します。

関連する問題