如何在Android上拍摄WebElement的图片?

时间:2014-11-18 15:52:47

标签: java android selenium-webdriver appium sikuli

我希望能够在Android上拍摄元素的照片,例如在有4幅画布的页面上,我想获得仅第三幅画布的屏幕抓取。然后我会在页面上做一些事情并使用sikuli来确保画布没有改变。我可以使用以下代码在桌面上执行此操作:

public void shootWebElement(WebElement element, AndroidDriver driver,String fileName) throws IOException  {

    File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    Point p = element.getLocation();
    int width = element.getSize().getWidth();
    int height = element.getSize().getHeight();

    BufferedImage img = ImageIO.read(screen);
    BufferedImage dest = img.getSubimage(p.getX(), p.getY(), width,   
                         height);

    ImageIO.write(dest, "png", screen);
    File f = new File(fileName);
    FileUtils.copyFile(screen, f);
}

此代码在Android上运行,但我回来的图片不是该元素的图片,它是整个视图的部分图片(对于我用作参数的任何元素,此图片都是相同的)

有没有人知道解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用selendroid,不推荐使用AndroidDriver,不再维护。