2017-07-31 89 views
0

我有selenium腳本正在通過網站獲取報價,然後獲取文件上傳,點擊元素和文件上傳窗口打開。我的AutoIt腳本在下面,它在我手動執行時起作用。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

您是否嘗試過使用以下部分來執行autoIT而不是使用Process「Runtime.getRuntime().exec(」C:\ AutoIt3 \ new.exe「); 並使用一些等待以便擁有上傳的文件。

請注意,我說的只是運行「CMD」命令,不提供上傳文件腳本的執行。

+0

是的,我做了兩件事情,這是同樣的事情。 –

+0

請嘗試以下操作,用此/替換「\\」,並且您可以確認您已使用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"); 

運行此代碼,它的作用就像魅力。