我试图用ashot截取屏幕截图(只关注一个元素(,但是我得到了这样的错误:java.lang.RuntimeException:org.openqa.selenium.WebDriverException:方法未实现(警告:服务器未提供任何堆栈跟踪信息(
这是依赖项的信息:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>5.0.0-BETA6</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.ashot</groupId>
<artifactId>ashot</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.1.5</version>
<scope>provided</scope>
</dependency>`
这是捕获屏幕截图功能
public void capture(String folder, String screenShotName, MobileElement
mobileElement) throws Exception
{
Screenshot screenshot = new AShot().takeScreenshot(driver, mobileElement);
BufferedImage actualImage = screenshot.getImage();
String dest = ApplicationConfig.CAPTUREDSCREEN_DIR +
"\" + folder + "\" + screenShotName+ ".png";
ImageIO.write(actualImage,"PNG",new File(dest));
}
请帮助我。
谢谢!!!!
WebDriver 屏幕截图实用程序
在不同平台上截取WebElement的屏幕截图(即 桌面浏览器, iOS模拟器移动野生动物园, 安卓模拟器 浏览器(装饰截图提供灵活的截图比较
来源: https://github.com/yandex-qatools/ashot
我认为他们不支持捕获屏幕截图MobileElement
要获得缓冲图像,我使用代码来自如何使用Selenium Webdriver捕获特定元素而不是整个页面的屏幕截图? - 它适用于Appium/Android。
如果我需要一个ru.yandex.qatools.ashot.Screenshot对象,那么我使用consctuctor new Screenshot(bufferedImage(。