2014-02-20 5 views
0

Мы пытаемся написать тест для Native Android App, и это заставило меня замочить.Robotuim - выбор текстовых полей по индексу solo.enterText

solo.enterText(6, "100"); 
    solo.enterText(7, "200"); 
    solo.enterText(8, "300"); 
    solo.enterText(9, "400"); 

все работает нормально, но как только индекс переместится через 10, он не находит ни одного из полей.

solo.enterText(10, "500"); 
    solo.enterText(11, "600"); 

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

Есть ли способ выбрать текстовое поле по идентификатору ресурса или имени поля вместо номера индекса?

спасибо за вашу помощь

+0

Не можете добавить ошибку в logcat? –

ответ

0

Я думаю, что если вы посмотрите на на экране вы сможете видеть только 10 текстовых полей и тексты редактирования с индексом 10+ находятся вне экрана и внутри списка, поэтому на самом деле они не существуют для роботизма, вы вам нужно прокрутить, прежде чем вы сможете вводить текст, но затем индексы будут отключены, поэтому вам придется компенсировать. Альтернативой является поиск текстов редактирования другими способами, такими как идентификатор или тег, или их поиск в виде дочернего элемента строки списка, в которой они находятся.

Если вы можете подтвердить это, так как его в виде списка i может найти код, который поможет вам.

+0

спасибо Пол точно прав - кажется, что он сбрасывает индекс после прокрутки экрана - так что вы можете догадаться, каким может быть новый номер индекса или в конце я когда для solo.enterText (R.id.YOURFIELDNAME, «500 «); где вы просто меняете YOURFIELDNAME. Но мне также не хватает импорта com.YOURPACKAGENAME.R; на вершине. – Bob

1

Попробуйте это:

EditText editText 
=(EditText)getActivity().findViewById(R.id.editText); 
mSolo.enterText(editText,"500"); 

с помощью R-файл и идентификатор ресурсосберегающим должно быть легче проверить EditText

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