Как записать экран во время тестирования в Robot Framework Appium? - PullRequest
1 голос
/ 30 января 2020

Я ищу способ записи экрана на платформе Robot Framework Appium. Я проверил на Appium Robot Framework Do c, но он не описывает это, но я пытаюсь написать пользовательскую библиотеку с python но он не поддерживает.

import os
import subprocess
from appium import webdriver
from robot.api import logger
desired_caps = {}
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '12.3.2'
desired_caps['bundleId'] = 'xxxxxx'
desired_caps['udid'] = 'xxxxxxx'
desired_caps['deviceName'] = 'iPhone'
driver = webdriver.Remote("http://localhost:4723/wd/hub",desired_caps)
def start_screen_recording():
    driver.start_recording_screen()
def stop_screen_recording():
    filepath = os.path.join("/Users/keo.sidara/Desktop/Mobile_Test/testcases/regression", "screen_recording_110918-205655.mp4")
    warning_message(filepath)
    payload = driver.stop_recording_screen()
    with open(filepath, "wb") as fd:
        fd.write(base64.b64decode(payload))

, и я получил сообщение

[W3C] Соответствует W3 C код ошибки «неверный идентификатор сеанса» для NoSuchDriverError [W3 C (1530275d)] Обнаружена внутренняя ошибка при выполнении команды: NoSuchDriverError:

Кто-нибудь сталкивался с этим? Пожалуйста, поделитесь мной. Спасибо

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Документация Appium по методу начальной записи здесь .

В документации AppliumLibrary исходный код для ключевого слова Открыть приложение показывает что ключевое слово возвращает номер заявки в реестре.

Это означает, что AppiumLibrary не поддерживает способ получения веб-драйвера. Это означает, что требуется модификация исходной библиотеки. Это было сделано уже в развилке: nichotined / robotframework-appiumlibrary

Извлекая исходную библиотеку из вашей установки python и устанавливая эту, вы получите Доступ к ключевому слову Get Current Application, которое возвращает драйвер. Теперь вы можете использовать описанный ниже подход или добавить другое ключевое слово таким же образом, чтобы создать пользовательскую запись экрана запуска и остановки.

Поскольку у меня нет работающей установки Appium, я не могу проверить это я:

*** Settings ***
Library    AppiumLibrary

*** Test Cases ***
    Open Application    
    ...    http://localhost:4723/wd/hub
    ...    alias=Myapp1
    ...    platformName=iOS
    ...    platformVersion=7.0   
    ...    deviceName='iPhone Simulator'
    ...    app=your.app

    ${driver}  Get Current Application


    Call Method    ${driver}    start_recording_screen
0 голосов
/ 26 февраля 2020

Я никогда раньше не пользовался Robot Framework, но я пробовал много способов записи с помощью драйвера appium, но не смог заставить его работать. Единственным решением, которое я нашел, было использование команд ADB SHELL для записи экрана устройства. Вы должны иметь в виду, что не все устройства способны записывать свой экран.

adb shell screenrecord /sdcard/test.mp4 --size 480x720 #To start recording

После завершения описанного выше процесса вы можете получить видео с устройства с помощью этих команд

adb pull /sdcard/test.mp4 "C:/"

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