Снимок экрана не соответствует координатам и размеру элемента для приложения iOS - PullRequest
0 голосов
/ 09 октября 2018

Я использую методы Appium, чтобы сделать снимок экрана и обрезать перикулярную часть этого снимка экрана в соответствии с координатами и размером элемента.

Способ, которым я делаю это :

Сделать снимок экрана

Это делается с помощью getScreenShotAs() метода


Обрезать часть этого изображения

Это сделано

        image.getSubimage(getElementCoordinateX(element),
                          getElementCoordinateY(element),
                          getElementWidth(element),getElementHeight(element));

        public static int getElementWidth(MobileElement element) {
            return element.getSize().getWidth();
        }
        public static int getElementHeight(MobileElement element) {
            return element.getSize().getHeight();
        }
        public static int getElementCoordinateX(MobileElement element) {
            return element.getLocation().getX();
        }
        public static int getElementCoordinateY(MobileElement element) {
            return element.getLocation().getY();
        }

Я протестировал этот подход на Android, и он работает как задумано, но на iOS он выдает совершенно другую часть скриншота, и я уверен, что это именно тот элемент, который находится.

Разработчики сказали мне, что приложения для iOS работают с фреймами и что я, вероятно, получаю координаты границ, а не координаты фрейма.Я не нашел способа взаимодействовать с ними с помощью Appium.Есть ли способ сделать эту работу, как задумано?

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете получить скриншот элемента напрямую, используя: Ruby:

element = driver.find_element(:predicate, "type == 'XCUIElementTypeSlider'")
screenshot = driver.element_screenshot_as(element ,:base64)

Это должно обрезать скриншот автоматически и правильно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...