2016-09-30 9 views
0

Совсем недавно, чтобы посмотреть в Appium на iOS в данный момент, используя Mocha & JavaScript, я ударил его камнем преткновения. Наше приложение показывает воспроизведение видео &, когда вы идете на полный экран, единственный выход для выхода из полноэкранного режима - нажать в любом месте экрана, а затем нажать кнопку «Готово», которая появится.Appium: кнопка исчезает до того, как тест успеет щелкнуть по ней (iOS)

Проблема, с которой я столкнулся, заключается в том, что кнопка «Готово» появляется на экране примерно 3,5 секунды & к моменту попытки теста щелкнуть по ней, она уже исчезла из виду снова.

Есть ли все равно вокруг этого, уменьшая задержка по умолчанию между щелчками или выполняя два щелчка/метчики в быстрой последовательности?

В настоящее время мой тест работает, если я вручную нажимаю экран снова, как только кнопка «Готово» сначала исчезает из вида, но я не могу автоматизировать процесс.

Мой код в настоящее время выглядит следующим образом:

//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()

Любая помощь будет оценена, как я говорю, я совсем новичок в этом.

Благодаря

ответ

0

Проблема состоит в следующем:

Вы пытаетесь найти кнопку «Готово», после нажатия в любом месте на экране и appium занимает несколько секунд, чтобы найти элемент.

Решение:

Если расположение кнопки «Done», которая появляется каждый раз, когда такое же, то вы можете выполнить щелчок действие с помощью X и Y координаты вместо того, чтобы найти фактический элемент.

Найти координаты X и Y кнопки «Готово» вручную (одноразовый процесс).

, а затем щелкните по координатам X и Y.

driver.tap(numberOfFingers,X-co-ordinate,Y-co-ordinate,durationInMilliseconds) 

e.g. driver.tap(1,200,300,1000)

Надеюсь, это поможет :)