我正在尝试使用 Allure aShot() 类在我正在处理的网站上截取特定 WebElements 的屏幕截图,下面是我在 selenium 中使用的代码来实现它。请访问此链接,其中显示了 aShot() 项目文档:
https://github.com/yandex-qatools/ashot
所以我的问题是,这些 WebElement 的 Ashot() 屏幕截图实际保存在哪里?我使用 testNG 执行以下方法并成功生成了魅力报告,但我在这些报告或我的框架中的任何地方都看不到这些屏幕截图。请检查下面的代码,很难确定这些图像的位置。
再说一次,我的基本问题是:我们如何指定 selenium 将 WebElement 的这些 AShot() 屏幕截图存储到我们想要的特定文件中?
我尝试将下面提到的 Screenshot 类转换为 BufferedImage 或 TakesScreenshot 类,并使用 ImageIO.write 或 FileUtils.copyFile 方法将这些图像复制到一个文件中并将这些图像存储在那里,但我收到一条错误消息,例如,“java .lang.ClassCastException: ru.yandex.qatools.ashot.Screenshot 无法转换为 org.openqa.selenium.TakesScreenshot”,我也尝试了其他方法,但均未成功。
请帮我解决这个问题,我们如何知道/指定这些 AShot() 屏幕截图的保存位置?
public WebDriver driver;
@Test
public void getAShotImage() {
driver.get("http://....../");
WebElement element = driver.FindElement(By.xpath(".............."));
AShot shot = new AShot();
shot.takeScreenShot(driver, element);
OR
shot.coordsProvider(new WebDriverCoordsProvider()).takeScreenshot(driver, element);
}