Есть ли способ обеспечить одновременную цепочку жестов с помощью appium? - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь написать тесты пользовательского интерфейса для моего iOS приложения, используя клиент Appium python. Я пытаюсь добиться следующего -

Finger 1: 1) Touch Down (100, 800) в 0 секунд 2) Touch Up через 10 секунд

Finger 2: 1) Touch Down вкл (200, 800) в 0 секунд 2) Touch Up в 10 секунд

Палец 3: 1) Нет активности в течение 1 секунды 2) Touch Down вкл (100, 100) в 1 секунду 3) Перетащите сенсорный экран к (500, 500) 4) Touch Up в 9 секунд

Я написал следующий код для достижения того, что я хочу -

    actionBuilder = ActionBuilder(driver)

    finger1 = actionBuilder.add_pointer_input(POINTER_TOUCH, 'finger 1')
    finger1.create_pointer_move(x=100, y=800, duration=0, origin='viewport')
    finger1.create_pointer_down(MouseButton.LEFT)
    finger1.create_pause(pause_duration=10)
    finger1.create_pointer_up(MouseButton.LEFT)

    finger2 = actionBuilder.add_pointer_input(POINTER_TOUCH, 'finger 2')
    finger2.create_pointer_move(x=200, y=800, duration=0, origin='viewport')
    finger2.create_pointer_down(MouseButton.LEFT)
    finger2.create_pause(pause_duration=10)
    finger2.create_pointer_up(MouseButton.LEFT)

    finger3 = actionBuilder.add_pointer_input(POINTER_TOUCH, 'finger 3')
    finger3.create_pointer_move(x=100, y=100, duration=1000, origin='viewport')
    finger3.create_pointer_down(MouseButton.LEFT)
    finger3.create_pause(pause_duration=8)
    finger3.create_pointer_move(x=500, y=500, duration=0, origin='viewport')
    finger3.create_pointer_up(MouseButton.LEFT)

    actionBuilder.perform()

Что я получаю после запуска это то, что для первые 1000 мс, касания от [Finger 1, Finger 2] можно увидеть на экране (я использую сенсорный визуализатор в моем приложении), но как только на экране появляется касание от [Finger 3], касания от [Палец 1, Палец 2] потеряны. Я что-то здесь не так делаю? Есть ли другой способ добиться этого?

PS: у меня было еще одно сомнение при использовании метода create_pause() для касаний [Палец 3]. Это не останавливает касание, но длительность, переданная для create_pause(), используется для движения касания create_pointer_move.

Версия Appium: 1.15.1

...