首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Selenium (任意版本)下载镜像?

如何使用Selenium (任意版本)下载镜像?
EN

Stack Overflow用户
提问于 2011-07-25 16:56:08
回答 12查看 73.4K关注 0票数 29

我想知道,如何使用selenium/webdriver为页面下载图像。假设需要用户会话来下载图像,因此使用纯URL没有什么帮助。任何示例代码都是高度赞赏的。

EN

回答 12

Stack Overflow用户

发布于 2012-11-08 21:18:02

我更喜欢这样做:

代码语言:javascript
复制
1. Get the SRC attribute of the image.
2. Use ImageIO.read to read the image onto a BufferedImage
3. Save the BufferedImage using ImageIO.write function

例如

代码语言:javascript
复制
String src = imgElement.getAttribute('src');
BufferedImage bufferedImage = ImageIO.read(new URL(src));
File outputfile = new File("saved.png");
ImageIO.write(bufferedImage, "png", outputfile);
票数 24
EN

Stack Overflow用户

发布于 2017-04-27 01:46:49

我更喜欢这样:

代码语言:javascript
复制
 WebElement logo = driver.findElement(By.cssSelector(".image-logo"));
 String logoSRC = logo.getAttribute("src");

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

 ImageIO.write(saveImage, "png", new File("logo-image.png"));
票数 6
EN

Stack Overflow用户

发布于 2020-04-06 22:15:37

请尝试以下操作

代码语言:javascript
复制
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"));
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6813704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档