Java 机器人类中的隐式等待。可能吗?
我正在自动化一个应用程序,其中robot类首先单击cancel按钮,然后单击菜单项,然后单击子菜单项。单击子菜单后,它必须等待的时间未知,因为它加载一个环境,然后单击一个按钮。那么,有没有办法让我等待那个特定的时间,当任务完成时它必须退出。它不应该多多少少地等待 我提供我的代码,请帮助我实现此代码Java 机器人类中的隐式等待。可能吗?,java,awtrobot,Java,Awtrobot,我正在自动化一个应用程序,其中robot类首先单击cancel按钮,然后单击菜单项,然后单击子菜单项。单击子菜单后,它必须等待的时间未知,因为它加载一个环境,然后单击一个按钮。那么,有没有办法让我等待那个特定的时间,当任务完成时它必须退出。它不应该多多少少地等待 我提供我的代码,请帮助我实现此代码 import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import java.io.
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能否请你共享代码或其中的一部分。不幸的是,它是一个封闭的软件包的一部分,我再也不能访问它了…本质上,它可以归结为和相关的功能