2014-09-25 3 views
0

Я новичок в программировании с помощью UIautomator и вам нужно выбрать опцию «Устройство» из настроек с помощью прокрутки.UiScrollable не работает, как ожидалось, в UiAutomator

Это код, который я написал:

public class LaunchClass extends UiAutomatorTestCase { 

    public static final UiSelector LAUNCHER_ITEM = new UiSelector().className(android.widget.TextView.class.getName()); 


    public void testDemo() throws UiObjectNotFoundException { 
      //new UiObject(new UiSelector().text("Email")).clickAndWaitForNewWindow(); 

     getUiDevice().pressHome(); 
     UiObject settingsClick = new UiObject(new UiSelector().description("Settings. App. Item *23 of *24 on page *1."));  
     settingsClick.clickAndWaitForNewWindow(); 
     UiScrollable scroll = new UiScrollable(new UiSelector().scrollable(true)); 
     scroll.setAsVerticalList(); 
     sleep(5000); 
     UiObject voiceButton = scroll.getChildByText(LaunchClass.LAUNCHER_ITEM, "Device"); 
     sleep(5000); 
     voiceButton.clickAndWaitForNewWindow(); 

При выполнении этого она прокручивается вниз, но не выберите «Device», я думал, что, может быть, свиток медленнее, чем щелчок Введенный таким образом сон - но его не хорошо.

Это ошибка, я получаю:

Ошибка в testDemo:

com.android.uiautomator.core.UiObjectNotFoundException: for text= "Voice" 
    at com.android.uiautomator.core.UiCollection.getChildByText(UiCollection.java:125) 
    at com.android.uiautomator.core.UiScrollable.getChildByText(UiScrollable.java:201) 
    at com.android.uiautomator.core.UiScrollable.getChildByText(UiScrollable.java:181) 
    at com.uia.example.my.Sairam.testDemo(Sairam.java:23) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:144) 
    at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:87) 
    at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:90) 
    at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) 
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) 
    at dalvik.system.NativeStart.main(Native Method) 

INSTRUMENTATION_STATUS: numtests=1 
INSTRUMENTATION_STATUS: stack=com.android.uiautomator.core.UiObjectNotFoundException: for text= "Voice" 
    at com.android.uiautomator.core.UiCollection.getChildByText(UiCollection.java:125) 
    at com.android.uiautomator.core.UiScrollable.getChildByText(UiScrollable.java:201) 
    at com.android.uiautomator.core.UiScrollable.getChildByText(UiScrollable.java:181) 
    at com.uia.example.my.Sairam.testDemo(Sairam.java:23) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:144) 
    at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:87) 
    at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:90) 
    at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) 
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) 
    at dalvik.system.NativeStart.main(Native Method) 

INSTRUMENTATION_STATUS: test=testDemo 
INSTRUMENTATION_STATUS_CODE: -1 
INSTRUMENTATION_STATUS: stream= 
Test results for WatcherResultPrinter=.E 
Time: 10.974 

FAILURES!!! 
Tests run: 1, Failures: 0, Errors: 1 

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

ответ

0

Похоже, есть две вещи здесь:

журнал
  1. Ошибка показывает, что вы изменили свой код, но не компилируется снова :)

    com.android.uiautomator.core.UiObjectNotFoundException: for text= "Voice"? - В соответствии с вашим кодом он должен был усеиваться для вместо

  2. Использовать UiObject voiceButton = scroll.getChild(new UiSelector().className("android.widget.TextView").text("Device")); вместо UiObject voiceButton = scroll.getChildByText(LaunchClass.LAUNCHER_ITEM, "Device");.

Я действительно не думаю, что вам нужно sleep, если у вас есть clickAndWaitForNewWindow()

+0

жаль, что я искал как «Голос» и «Device» оба были прокручивается вниз. Спасибо, попробуем и посмотрим! –

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