Java 机器人类中的隐式等待。可能吗?

Java 机器人类中的隐式等待。可能吗?,java,awtrobot,Java,Awtrobot,我正在自动化一个应用程序,其中robot类首先单击cancel按钮,然后单击菜单项,然后单击子菜单项。单击子菜单后,它必须等待的时间未知,因为它加载一个环境,然后单击一个按钮。那么,有没有办法让我等待那个特定的时间,当任务完成时它必须退出。它不应该多多少少地等待 我提供我的代码,请帮助我实现此代码 import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import java.io.

我正在自动化一个应用程序,其中robot类首先单击cancel按钮,然后单击菜单项,然后单击子菜单项。单击子菜单后,它必须等待的时间未知,因为它加载一个环境,然后单击一个按钮。那么,有没有办法让我等待那个特定的时间,当任务完成时它必须退出。它不应该多多少少地等待

我提供我的代码,请帮助我实现此代码

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.IOException;

public class ChangeAsst {



public static void main(String[] args) throws AWTException, IOException {


    Runtime.getRuntime().exec("C:\\Program Files\\PeopleSoft\\Change Assistant\\changeassistant.exe");

    Robot robot = new Robot();
    robot.delay(2000);
    System.out.println(robot.isAutoWaitForIdle());

    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_C);
    robot.keyRelease(KeyEvent.VK_C);
    robot.keyRelease(KeyEvent.VK_ALT);

    /* 
     * this is where i want to implement the code so that it should wait for that particular time (it should not wait more or less)
     * When environment loading is done it should exit from this and go to next line of code. 
     * 
     * I can use here as :
     * robot.delay(10000);
     *  but it will wait for 10 seconds, even if loading is done in 3rd seconds also.
     */


    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_T);
    robot.delay(300);
    robot.keyPress(KeyEvent.VK_C);
    robot.keyRelease(KeyEvent.VK_ALT); 
    robot.delay(5000);

    System.out.println(robot.isAutoWaitForIdle());



}

}

在你的情况下,没有。我之前做的是使用JNI集成并检查与之交互的窗口的状态,等待某个组件可用…@MadProgrammer能否请你共享代码或其中的一部分。不幸的是,它是一个封闭的软件包的一部分,我再也不能访问它了…本质上,它可以归结为和相关的功能