[英]Allure AShot() screenshots in Selenium
我正在嘗試用Allure aShot()類在我正在工作的網站上拍攝特定WebElement的屏幕截圖,下面是我在selenium中使用的實現此目的的代碼。 請訪問此鏈接,其中顯示aShot()項目文檔:
https://github.com/yandex-qatools/ashot
所以我的問題是,這些WebElement的AShot()屏幕截圖實際上保存在哪里? 我使用testNG執行以下方法,並成功生成了誘人的報告,但在這些報告或框架中的任何位置都看不到這些屏幕截圖。 請檢查以下代碼,查明這些圖像的位置非常困難。
再說一次,我的基本問題是:我們如何指定硒將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);
}
您可以通過從方法返回字節數組來附加屏幕截圖。 看下面的例子:
@Attachment(value="Screenshot", type="image/png")
private static byte[] captureScreenshot(Webdriver driver)
{
byte[] screenshot = null;
screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
return screenshot
}
上面的代碼不使用Ashot,但是它顯示了如何附加文件。 另外,如果你仍然無法看到你的截圖,請檢查您的步驟都顯示在您的report.If不是那么很可能你缺少javaagent在討論常見問題解答
AShot返回Screenshot
對象,該對象包含元素的圖像以及用於比較屏幕快照的信息。 在這種情況下,您可以使用getImage()
方法獲取圖像。
new AShot().takeScreenshot(....).getImage();
Screenshot
很快將包含字節數組而不是BufferedImage
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.