2012-05-17 3 views
2

Я использую UIAutomation для тестирования своего приложения для iPhone.
У моего приложения есть UISearchBar, после того как я сделал его сфокусированным,
Эта строка скрипта показывает, что приложение теперь имеет 2 UIAWindow.iPhone - UI Automation - Type with UIAKeyboard

UIATarget.localTarget().frontMostApp().logElementTree(); 

Второй UIAWindow имеет UIAKeyboard как ребенок.

enter image description here

Вы знаете, как получить ссылку второго UIAWindow, так что я мог бы получить ссылку на UIAKeyboard?

Я попытался

UIATarget.localTarget().frontMostApp().mainwindow()[1].keyboard().key()["Q"].tap(); 

, но он не работает.

EDIT 1:
Я использую эту строку, чтобы получить ссылку на клавиатуре. Оно работает.

UIATarget.localTarget().frontMostApp().windows()[1].logElementTree(); 

, но когда я пытался что-то типа с клавиатуры:

UIATarget.localTarget().frontMostApp().keyboard().typeString("Hello world"); 

или

UIATarget.localTarget().frontMostApp().keyboard().keys()["A"].tap; 

, но они не работают.

Вы знаете, как набрать что-то с клавиатурой?


EDIT:.. (просто, чтобы вы, ребята, знаете, как сделать UIAKeyboard работает для вас)


UIATarget.localTarget() frontMostApp() клавиатура(). ключи() [ "A"]; кран.
не работает
UIATarget.localTarget(). FrontMostApp(). Клавиатура(). Keys() ["A"]. Tap();
работы

и
UIATarget.localTarget() frontMostApp() клавиатура() TypeString ("Это сообщение")...;
работы

ответ

2

Последние два фрагмента кода, которые вы выложили должны работать, но они работают только если ваша клавиатура открыта (отображается на экране). Альтернативный способ сделать это - получить доступ к текстовому полю (где вы хотите ввести все, что вы пытаетесь ввести), а затем вызвать функцию .setValue("Hello world") или .typeString("Hello world"). Эти два являются функциями объекта textField. Надеюсь это поможет.

0

Для ввода с клавиатуры, как только это на экране:

UIATarget.localTarget().frontMostApp().keyboard().typeString("This is a message");