我正在为应用程序自动化。我想打开应用程序/网页并尝试捕获屏幕。但是我在做同样的事情时正面临着这个问题。我正在使用Java的Robot类来捕获屏幕。我的问题是
我不希望有任何延迟(即sleep(2000))。我想为这两种情况添加智能延迟。有人可以帮我解决这个问题吗?这是示例代码。 我已经苦苦尝试了一下,但是在某些情况下,它在某些情况下有效。很难预测网页加载的确切延迟。
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.File;
import javax.imageio.ImageIO;
public class Screenshot
{
public static void main(String[] args)
{
try
{
Runtime.getRuntime().exec("calc");
Robot robot = new Robot();
Thread.sleep(200);
String path = "D:// calc.jpg";
Rectangle capture = new
Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage Image = robot.createScreenCapture(capture);
ImageIO.write(Image, "jpg", new File(path));
System.out.println("Screen Captured);
}
catch (IOException | InterruptedException ex)
{
System.out.println(ex);
}
}
}
它应该等到calc窗口打开,然后进行屏幕截图。现在,这取决于系统负载,Calc窗口需要多少时间才能打开。网页也一样。我希望有一个聪明的延迟来等到应用程序/网页打开。