请问如何用Selenium的WebDriver 截图来截取一个iframe?

 我来答
qi_ling2005
推荐于2016-01-08 · TA获得超过500个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:275万
展开全部
webdriver没有现成的,自己写一个。代码如下,可以截任何一个WebElement,Good Luck!

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.Point;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;

public class Shooter{

private WebDriver driver;

public void shootWebElement(WebElement element) throws IOException {

File screen = ((TakesScreenshot) this.driver).getScreenshotAs(OutputType.FILE);

Point p = element.getLocation();

int width = element.getSize().getWidth();
int height = element.getSize().getHeight();

Rectangle rect = new Rectangle(width, height);

BufferedImage img = null;

img = ImageIO.read(screen);

BufferedImage dest = img.getSubimage(p.getX(), p.getY(), rect.width,
rect.height);

ImageIO.write(dest, "png", screen);

File f = null;

f = new File("D:\\one\\where\\over\\the\\rainbow");

FileUtils.copyFile(screen, f);

}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式