【问题标题】:using robot class how can save image?使用机器人类如何保存图像?
【发布时间】:2019-05-12 21:36:40
【问题描述】:

我尝试使用机器人类来保存图像...但它无法正常工作。

    WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("http://agiletesters.com.br");
     Robot rb =new Robot();
     rb.mouseMove(270, 160);
     rb.mousePress(InputEvent.BUTTON3_DOWN_MASK);
     rb.mouseRelease(InputEvent.BUTTON3_DOWN_MASK);

     rb.keyPress(KeyEvent.VK_DOWN);
     Thread.sleep(11000);
     rb.keyRelease(KeyEvent.VK_DOWN);
     rb.keyPress(KeyEvent.VK_ENTER);
     rb.keyRelease(KeyEvent.VK_ENTER);

在此右键单击有效,但未选择“将图像另存为...”选项。

我试过了,但下载的图片没有显示:-

try {
         driver = new FirefoxDriver();
         driver.get("http://agiletesters.com.br");
         System.setProperty("http.agent", "Firefox");
         WebElement logo = driver.findElement(By.xpath("//*[@id=\"header-menu\"]/div/div[1]/a/img"));
         String logoSRC = logo.getAttribute("src");

         URL imageURL = new URL(logoSRC);
         BufferedImage saveImage = ImageIO.read(imageURL.openStream());

         ImageIO.write(saveImage, "png", new File("logo-forum.png"));

         } catch (Exception e) {
            e.printStackTrace();
         } finally {
            driver.close();
         }

【问题讨论】:

    标签: java selenium automation


    【解决方案1】:

    我的期望是您的BufferedImage saveImage = ImageIO.read(imageURL.openStream()); 由于缺少Cookie header 而失败

    下载文件的正确方法是:

    1. 使用 driver.managet().getCookies() function 从 Firefox 浏览器实例获取当前的 cookie 集
    2. 使用底层OKHTTP library to execute the GET request 作为徽标并保存文件。

    示例代码:

    OkHttpClient client = new OkHttpClient().newBuilder().build();
    
    Request request = new Request.Builder().url(logoSRC).addHeader("Cookie", cookies.toString()).build();
    Response response = client.newCall(request).execute();
    
    File downloadedLogo = new File("logo-forum.png");
    BufferedSink sink = Okio.buffer(Okio.sink(downloadedLogo));
    sink.writeAll(Objects.requireNonNull(response.body()).source());
    sink.close();
    

    【讨论】:

      猜你喜欢
      • 2021-06-23
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 2016-09-05
      相关资源
      最近更新 更多