Appium: кнопка исчезает до того, как тест успеет нажать ее (iOS)
Совершенно новичок в изучении Appium на iOS в настоящее время с использованием Mocha и JavaScript, однако я наткнулся на этот камень преткновения. Наше приложение поддерживает воспроизведение видео, и как только вы переходите в полноэкранный режим, единственный способ выйти из полноэкранного режима - нажать в любом месте экрана и нажать появившуюся кнопку "Готово".
Проблема, с которой я столкнулся, заключается в том, что кнопка "Готово" появляется на экране в течение примерно 3,5 секунд, и к тому времени, когда тест пытается щелкнуть по ней, она уже исчезла из вида.
Есть ли что-то еще, уменьшив задержку по умолчанию между щелчками или выполнив 2 щелчка / касания в быстрой последовательности?
В настоящее время мой тест работает, если я снова вручную нажимаю на экран, как только кнопка "Готово" исчезает из поля зрения, но я не могу автоматизировать процесс.
Мой код в настоящее время выглядит так:
//Opens the video in full screen
.elementByXPath("//*[@name='Live']").click()
.elementByXPath("//UIAWindow[1]/UIAElement[1]").click()
//Delay of 5 seconds to allow video to play
.sleep(5000)
//Press the video screen to get 'Done' button to appear
.elementByXPath("//UIAWindow[1]/UIAScrollView[1]").click()
//Attempt to click 'Done' button; it always disappears before it can be clicked
.elementByXPath("//*[@name='Done']").click()
Буду признателен за любую помощь, как я уже сказал, я новичок в этом.
Спасибо
1 ответ
Проблема здесь в следующем:
Вы пытаетесь найти кнопку "Готово" после нажатия в любом месте экрана, и appium требуется несколько секунд, чтобы найти элемент.
Решение:
Если расположение кнопки "Готово", которая появляется каждый раз, одинаково, то вы можете выполнить действие щелчка, используя координаты X и Y вместо поиска фактического элемента.
Найдите координаты X и Y кнопки "Готово" вручную (однократный процесс).
а затем нажмите на X и Y координаты.
driver.tap(numberOfFingers,X-co-ordinate,Y-co-ordinate,durationInMilliseconds)
например driver.tap(1,200,300,1000)
Надеюсь, это поможет:)