时间:2021-05-20
用过 WebDriver 的同学都知道,WebDriver 可以对浏览器中的页面进行截图。例如:
public byte[] takeScreenshot() throws IOException { TakesScreenshot takesScreenshot = (TakesScreenshot) driver; return takesScreenshot.getScreenshotAs(OutputType.BYTES);}这样产生的图片是整个网页。但有时候我们并不需要整个网页,只需要某些特定的 WebElement,以避免一些干扰。
虽然 WebDriver 本身没有提供这样的 API,不过我们可以自己来,就是在全屏的截图中再进行裁剪,如下:
public BufferedImage createElementImage(WebElement webElement) throws IOException { // 获得webElement的位置和大小。 Point location = webElement.getLocation(); Dimension size = webElement.getSize(); // 创建全屏截图。 BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(takeScreenshot())); // 截取webElement所在位置的子图。 BufferedImage croppedImage = originalImage.getSubimage( location.getX(), localtion.getY(), size.getWidth(), size.getHeight()); return croppedImage;}其中 ImageIO 和 BufferedImage 分别来自 javax.imageio 和 java.awt.image。
这种方法可以很好的削减截图的大小,也避免了一些不确定因素(比如日期时间等),是测试中保存截图的很好的方式。
注:如果测试的网页中含有 iframe,则需要使用更复杂的方式计算 WebElement 的位置,详见:计算网页中某个元素的位置。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
selenium+python,使用webdriver的截图函数get_screenshot_as_file()截图,代码如下:fromseleniumimpo
上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行
通过导入@angular/cdk/drag-drop模块我们可以轻松实现元素在页面中得拖放功能,如元素在页面中随意拖动、在特定区域内拖动亦或对列表进行拖放排序等
苹果电脑中的PrintScrSysrq键实现全屏截图,使用Alt加PrintScreenSysRq键实现活动截图,同时按下Ctrl加Alt加A键可实现选择区域截
电脑屏幕截图按键的方法有: 1、使用键盘中的PrintScreenSysrq键实现全屏截图。 2、使用Alt+PrintScreenSysrq键实现活动截图