How to download an image using Selenium (any version)?

前端 未结 13 1567
夕颜
夕颜 2020-11-29 04:11

I was wondering, how can one use selenium/webdriver to download an image for a page. Assuming that the user session is required to download the image hence having pure URL i

13条回答
  •  死守一世寂寞
    2020-11-29 04:34

    try the following

    JavascriptExecutor js = (JavascriptExecutor) driver;                              
    String base64string = (String) js.executeScript("var c = document.createElement('canvas');"
                           + " var ctx = c.getContext('2d');"
                           + "var img = document.getElementsByTagName('img')[0];"
                           + "c.height=img.naturalHeight;"
                           + "c.width=img.naturalWidth;"
                           + "ctx.drawImage(img, 0, 0,img.naturalWidth, img.naturalHeight);"
                           + "var base64String = c.toDataURL();"
                           + "return base64String;");
    String[] base64Array = base64string.split(",");
    
    String base64 = base64Array[base64Array.length - 1];
    
    byte[] data = Base64.decode(base64);
    
    ByteArrayInputStream memstream = new ByteArrayInputStream(data);
    BufferedImage saveImage = ImageIO.read(memstream);
    
    ImageIO.write(saveImage, "png", new File("path"));
    

提交回复
热议问题