AShot 库中的 takeScreenshot 方法无法捕获特定元素的屏幕截图

问题描述 投票:0回答:2

AutoTestWebDriver 驱动程序=new AutoTestWebDriver(); 整页作品的屏幕截图。 这是我的代码:

WebElement element = driver.findElement(By.id("element"));
    Screenshot shotFullscreen = new AShot().takeScreenshot(driver);// works fine
    Screenshot shot = new AShot().takeScreenshot(driver,element);
this is the error I get:

org.openqa.selenium.WebDriverException:未知错误:$未定义

可能是什么问题?

java automated-tests ui-automation intellij-14 ashot
2个回答
0
投票

我是这样解决的: 截图 screenshot = new AShot().coordsProvider(new WebDriverCoordsProvider()).takeScreenshot(driver,driver.findElement(By.xpath(webElementXpath)));

(您需要指定要使用的实现 - WebDriverCoordsProvider 或 JQuery 实现)。


0
投票

我在尝试截图页面上的某个元素时遇到了这种问题,特别是网站的徽标,幸运的是我已经使用 WebDriverCoordsProvider() 解决了它。

Screenshot logoImageScreenShot = new AShot().coordsProvider(new 
WebDriverCoordsProvider()).takeScreenshot(driver, element);
ImageIO.write(logoImageScreenShot.getImage(), "PNG",new File("{Directory}\\logo.png"));
File savedLogo = new File("{Directory}\\logo.png");
    
if(savedLogo.exists()) {
   System.out.println("Image File Captured");
}
else {
   System.out.println("Image File Not Exist");
}

如果您使用 Maven 并在运行“mvn test”时遇到错误,我建议先运行“mvn clean”,然后运行“mvn test”。

© www.soinside.com 2019 - 2024. All rights reserved.