在用Java打开应用程序/网页之前,有什么方法可以等待捕获屏幕吗?

时间:2019-05-07 06:18:50

标签: java

我正在为应用程序自动化。我想打开应用程序/网页并尝试捕获屏幕。但是我在做同样的事情时正面临着这个问题。我正在使用Java的Robot类来捕获屏幕。我的问题是

  1. 在打开应用程序之前,将调用屏幕捕获功能,其中不包含我想要的应用程序窗口
  2. 该网页存在相同问题。在网页完全加载之前,将进行屏幕截图。

我不希望有任何延迟(即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窗口需要多少时间才能打开。网页也一样。我希望有一个聪明的延迟来等到应用程序/网页打开。

0 个答案:

没有答案
相关问题