Appium_Android_Java_Не могу сфотографироваться с ашотом

Я попытался сделать снимок экрана с помощью ashot (просто сфокусироваться на элементе), но я получил такую ​​ошибку: java.lang.RuntimeException: org.openqa.selenium.WebDriverException: метод не реализован (ВНИМАНИЕ: сервер сделал не предоставлять никакой информации о трассировке стека)

Это информация о зависимостях:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.4.0</version>
    </dependency>

    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>5.0.0-BETA6</version>
    </dependency>

    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.14.3</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>ru.yandex.qatools.ashot</groupId>
        <artifactId>ashot</artifactId>
        <version>1.5.4</version>
    </dependency>

    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>1.3</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.7</version>
    </dependency>

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.9</version>
    </dependency>

    <dependency>
        <groupId>com.aventstack</groupId>
        <artifactId>extentreports</artifactId>
        <version>3.1.5</version>
        <scope>provided</scope>
    </dependency>`

Это функция захвата скриншота

public void capture(String folder, String screenShotName, MobileElement 
mobileElement) throws Exception
    {

        Screenshot screenshot = new AShot().takeScreenshot(driver, mobileElement);
        BufferedImage actualImage = screenshot.getImage();
        String dest = ApplicationConfig.CAPTUREDSCREEN_DIR +
 "\\" + folder + "\\" + screenShotName+  ".png";
        ImageIO.write(actualImage,"PNG",new File(dest));
    }

Пожалуйста, помогите мне.

Спасибо!!!!

2 ответа

Чтобы получить BufferedImage, я использую код из Как сделать снимок экрана определенного элемента, а не всей страницы с помощью Selenium Webdriver?- он отлично работает для Appium/Android.

Если мне нужен объект ru.yandex.qatools.ashot.Screenshot, то я использую конструктор new Screenshot(bufferedImage).

Утилита скриншотов WebDriver

Делает снимок экрана WebElement на разных платформах (например, браузеры рабочего стола, iOS Simulator Mobile Safari, браузер эмулятора Android). Декорирует снимки экрана. Обеспечивает гибкое сравнение снимков экрана.

Источник: https://github.com/yandex-qatools/ashot

Я думаю, что они не поддерживают снимок экрана для MobileElement

Другие вопросы по тегам