Как сфотографировать WebElement на Android?

Я хочу иметь возможность фотографировать элементы на 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, но изображение, которое я получаю, не относится к элементу, это частичное изображение всего представления (это изображение будет одинаковым для любого элемента, который я использую в качестве параметра).

Кто-нибудь знает способ обойти это?


person Matt    schedule 18.11.2014    source источник


Ответы (1)


Используйте selendroid , AndroidDriver устарел и больше не поддерживается.

person Amrit    schedule 21.11.2014
comment
Я использую Appium, поддерживают ли более поздние версии selendroid? - person Matt; 22.11.2014