Screenshot with Katalon and Chrome headless mode

China☆狼群 提交于 2019-12-02 05:49:27

You must set parameter to your headless chrome:

After looking through https://docs.oracle.com/javase/tutorial/2d/images/saveimage.html, java.io.FileNotFoundException: the system cannot find the file specified, Chrome Headless Doesn't work and Java "user.dir" property - what exactly does it mean?, i finally figured it out.

The problem is that System.getProperty("user.dir") changes when the test gets executed via command line in headless mode. So, this code works:

    public void takeWebElementScreenshot(TestObject object) {
    WebElement element = WebUiCommonHelper.findWebElement(object, 20)
    WebDriver driver = DriverFactory.getWebDriver();
    String fileName = new SimpleDateFormat("yyyyMMddHHmmSSS").format(new Date())
    Screenshot screenshot = new AShot().takeScreenshot(driver, element)
    try {
        if (DriverFactory.getExecutedBrowser().getName()=='HEADLESS_DRIVER'){
            ImageIO.write(screenshot.getImage(),'PNG', new File("C:/Users/path_to_working_directory/ErrorScreenshots/HeadlessElementScreenshot"+"_"+fileName+".png"))
        } else {
            ImageIO.write(screenshot.getImage(),'PNG', new File(System.getProperty("user.dir")+"/ErrorScreenshots/ElementScreenshot"+"_"+fileName+".png"))
        }

    } catch (Exception e) {
        e.printStackTrace()
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!