目前,我正在尝试使用Selenium
WebDriver捕获屏幕截图。但是我只能获取整个页面的屏幕截图。但是,我想要的只是捕获页面的一部分,或者仅捕获基于ID或任何特定元素定位符的特定元素。(例如,我希望捕获图像ID
=“ Butterfly”的图片)
有什么方法可以按选定的项目或元素捕获屏幕截图?
我们可以通过裁剪整个页面截图来获得元素截图,如下所示:
driver.get("http://www.google.com");
WebElement ele = driver.findElement(By.id("hplogo"));
// Get entire page screenshot
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage fullImg = ImageIO.read(screenshot);
// Get the location of element on the page
Point point = ele.getLocation();
// Get width and height of the element
int eleWidth = ele.getSize().getWidth();
int eleHeight = ele.getSize().getHeight();
// Crop the entire page screenshot to get only element screenshot
BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(),
eleWidth, eleHeight);
ImageIO.write(eleScreenshot, "png", screenshot);
// Copy the element screenshot to disk
File screenshotLocation = new File("C:\\images\\GoogleLogo_screenshot.png");
FileUtils.copyFile(screenshot, screenshotLocation);
目前,我正在尝试使用SeleniumWebDriver捕获一个屏幕截图。但我只能获得整个页面的屏幕截图。然而,我想要的只是捕获页面的一部分,或者基于ID或任何特定元素定位器捕获特定元素。(例如,我希望用image id=“Butterfly”捕捉图片) 有没有办法按所选项目或元素捕获屏幕截图?
我有一个有30行的tableView,我还有一个位于tableView顶部的视图(不在tableView标题中),我想捕获屏幕的完整屏幕截图,包括视图和tableView的所有行,但我只能捕获tableView和视图的可见行。请帮助我,提前谢谢。这是我的代码和模拟器的屏幕截图。注意(我不希望我的视图位于tableview标题中,因为当我们滚动tableview时,它也会滚动,这就是为什么视图是固定
我试图创建一个通用的网络爬虫,将去一个网站和截图。我使用的是Python、Selnium和PhantomJS。问题是截图并没有捕获页面上的所有图像。例如,如果我去you tube,它不会捕捉主页图像下面的图像。(我没有足够高的rep来发布屏幕截图)我认为这可能与动态内容有关,但我已经尝试了等待函数,如隐式等待和on set_page_load_timeout方法。因为这是一个通用的爬虫,我不能等待
我在浏览器栈上使用Selenium网络驱动程序自动测试,当我在Firefox和IE上截图时,它会截图整个页面。但是由于我的页面包含一个很长的列表——屏幕截图太长了,因此它不是一个清晰的图像,很难看出页面的行为是否正确。我需要它像Chrome一样精确:仅显示视口宽度和高度的屏幕截图。在Firefox和IE上可能吗? 我使用的代码:
我试图根据用户输入的坐标捕捉区域截图。基本上,用户在屏幕上点击得到x,y坐标,然后在其他地方点击另一对x,y坐标,然后将其放入一个矩形中,并使用机器人库创建屏幕截图。 我有的问题是,我得到了随机截图,这不是用户输入的坐标,我怎么能考虑包括0的坐标,因为矩形值必须超过1。 以下是我迄今为止的代码:
问题内容: 在Interface TakesScreenshot 页面上,我发现了这一点: 捕获屏幕截图并将其存储在指定位置。对于扩展了TakesScreenshot的WebDriver,这将根据浏览器尽最大努力按优先顺序返回以下内容:-整个页面- 当前窗口-当前帧的可见部分-包含浏览器的整个显示器的屏幕截图 对于扩展TakesScreenshot的WebElement,这将尽最大努力,具体取决于