uiautomation - Касание пользовательского представления не работает - PullRequest
4 голосов
/ 24 марта 2011

Я пытаюсь автоматизировать некоторые тесты моего приложения для iPad.

У меня есть прокрутка, которая содержит пользовательский вид.

  • Пользовательский вид перезаписывает drawRect и имеет TapRecognizer.
  • Пользовательский вид создан в коде, и я установил эти свойства

myView.userInteractionEnabled = YES;
[myView setIsAccessibilityElement:YES];
[myView setAccessibilityLabel:@"myView"];

  • Пользовательский вид добавляется в вид прокрутки с помощью

[myScrollView addSubview:myView];

Все работает гладко как на устройстве, так и на симуляторе: при нажатии на вид вызывается обратный вызов распознавателя крана, и пользовательский вид может рисовать что-то в точке крана.

Я бы автоматизировал тест представления, а затем мне нужно смоделировать нажатия пользователя на myView.

В скрипте uiautomation у меня есть что-то вроде этого:

myView = circuitScrollView.elements()[0];       
myView.logElement();
myView.tapWithOptions({x:56, y:576});

для имитации касания пользователя в позиции x = 56 и y = 576.

Ничего не происходит, похоже, что myView не получает никакого нажатия (на всякий случай, я воспроизводил звук в TapRecognizer, но он никогда не звучал).

Я тоже пробовал это:


myView.tap();

безуспешно.

Есть идеи?

Заранее спасибо.

Fab.

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Это может быть полезным для вас. Я написал тест, который выбирает определенные координаты х / у. Вместо того, чтобы касаться вида прокрутки, попробуйте коснуться окна, как показано ниже.

Для этого я написал:

   var window = UIATarget.localTarget(); 
   window.tap({x:x_co , y:y_co}); 

x_co и y_co были моими координатами.

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

0 голосов
/ 25 марта 2011

Возможно, myView = circuitScrollView.elements () ["myView"] может помочь вместо myView = circuitScrollView.elements () [0];

Возможно, ваше пользовательское представление не является первым элементом в дереве элементов вашего circuitScrollView ...

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