自动脚本未在Java运行时中执行

时间:2017-07-31 16:42:26

标签: java selenium selenium-webdriver autoit

我有selenium脚本通过网站获取报价然后获取文件上传,点击元素和文件上传窗口打开。我的AutoIt脚本在下面,当我手动执行它时它可以工作。

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)

当我尝试在Java运行时运行它时,它退出ecit code 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");

有谁知道是什么原因?

2 个答案:

答案 0 :(得分:1)

您是否尝试使用以下部分来执行autoIT而不是使用Process“Runtime.getRuntime()。exec(”C:\ AutoIt3 \ new.exe“); 并使用一些等待以便上传文件。

请注意,我所说的只是运行“CMD”命令,而不是关于上传文件脚本的实现。

答案 1 :(得分: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");

运行此代码,它就像魅力一样。