【问题标题】:Autoit script not executed in Java runtimeJava 运行时中未执行 Autoit 脚本
【发布时间】:2018-01-07 08:12:07
【问题描述】:

我有 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 代码 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");

有人知道是什么原因吗?

【问题讨论】:

    标签: java selenium selenium-webdriver autoit


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我做了这两件事,而且是一回事。
    • 试试下面的,把"\\"换成这个/,你能确认你用过Thread.sleep()吗。
    • 所以我把 \\ 改成了 / 并添加了 Thread.sleep(5000);上传区域1.click();线程.sleep(5000); Runtime.getRuntime().exec("C:/AutoIt3/new.exe");还是一样
    • 最后的希望是在uploadArea1.click()和上传脚本执行之间使用sleep,因为如果计算机性能一般,文件上传器的弹出需要时间在您的 .exe 脚本启动和失败期间显示,因为它找不到上传文件窗口。请检查并让我知道它是否有效。
    【解决方案2】:

    您必须在元素点击后进入睡眠状态。这是修改后的代码:

    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");
    

    运行这段代码,它就像魅力一样工作。

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2014-06-14
      相关资源
      最近更新 更多