2013-09-24 4 views
1

Я использую KIF для автоматизации своего приложения, и я пытаюсь автоматизировать ввод текста в UISearchBar и его поиск. К сожалению, я не смог найти satisfactory way, чтобы сделать это, программным нажатием кнопки поиска после ввода моего текста поиска.как программно нажать точку на клавиатуре iOS

Так что вместо этого я просто использовал метод K12 tapScreenAtPoint. Проблема с этим методом является то, что он делает следующее:

CGPoint windowPoint = [window convertPoint:screenPoint fromView:nil]; 
view = [window hitTest:windowPoint withEvent:nil]; 

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

Как программно нажать кнопку на клавиатуре? Я думаю, что это было бы очень полезно для любого набора для автоматизации тестирования.

ответ

4

Похоже, вы пытаетесь нажать кнопку «Поиск» на клавиатуре. Ярлыки доступности на клавишах возврата не следуют какой-либо нормальному шаблону. В инспекторе доступности вы увидите «ПОИСК», но это может быть несовместимо со всеми версиями ОС.

Update

Вы можете вызвать кнопку поиска, добавив \n в свой enterText...

[tester enterTextIntoCurrentFirstResponder:@"query\n"]; 

Search button in selector

+0

очень интересно .. однако ваш код выше не работает (хотя я бы сказал, что он должен) .. может ли '' не включен' выше, что-то с этим делать? – abbood

+0

Я предполагаю, что как только текст будет введен, текстовое поле теряет свойство Not Enabled и не должно быть проблемой. Вы можете попробовать добавить '\ n' в качестве последнего символа в свой' enterText: ... ', чтобы узнать, запускает ли это его. –

+0

хороший! трюк '\ n' работал! можете ли вы, пожалуйста, обновить свой ответ и вытащить «@» ПОИСК? «thingie b/c, он не работает (мы не хотим вводить в заблуждение людей?) – abbood

2

правильный способ заключается в использовании:

[tester clearTextFromAndThenEnterText:@"sample test" intoViewWithAccessibilityLabel:@"SearchField"];

[tester waitForViewWithAccessibilityLabel:@"search"];

[tester tapViewWithAccessibilityLabel:@"search"];

Доступность метки для клавиши возврата является «поиск» в этом случае, вы можете проверить его с помощью доступности инспектор приложение.

Но будьте осторожны, «обратный ключ» (поиск/сделать/возврат/все) не будет нажата, если вы добавляете текст, который заканчивается с капитализацией букв, например:

«образца TEST»

Кнопка «shift» будет нажата, а кнопка «возврат» не будет, даже если вы попытаетесь использовать метод «tapScreenAtPoint».

Это случилось со мной и давно сошло с ума, пока я не понял, что происходит на самом деле.

+0

Это гораздо лучший ответ, чем программная новая строка. –

Смежные вопросы