Ashot-元素截图不正确

时间:2020-06-22 11:46:10

标签: java selenium-webdriver ashot

我正在尝试使用Ashot截取特定Element的屏幕截图。 不幸的是,我没有得到元素截图。 当我将代码发送给其他人时,该元素的屏幕截图已正确获取。 我不明白为什么它不能在我的计算机上工作。

代码是:

public class ScreenShot
{
    WebDriver driver;

    @BeforeClass
    public void StartSession()
    {
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://www.google.com/");
    }

    @Test
    public void VerifyScreenShot()
    {
        TakeScreenShot();
        //CompareScreenShot();
    }

    @Step("take element screen shot")
    public void TakeScreenShot()
    {
        try
        {
            //find the element you want to picture
            WebElement imageElement = driver.findElement(By.id("hplogo"));
            //take the element screenshot
            Screenshot imageScreenShot = new AShot().coordsProvider(new WebDriverCoordsProvider()).takeScreenshot(driver,imageElement);
            //save the element picture in the project folder under img folder
            ImageIO.write(imageScreenShot.getImage(),"png",new File("./img/glogo.png"));
        }
        catch (Exception e)
        {
            System.out.println("Error writing image file: "+ e);
        }
    }

    @AfterClass
    public void EndSession()
    {
        driver.quit();
    }

}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 我需要将我的计算机分辨率更改为100%,然后拍摄元素截图。 比元素图片要好。