UIAutomator testmethod在另外的尝试中通过

时间:2013-10-23 07:04:46

标签: android android-ui ui-automation uiautomator

我在Android UIAutomator项目中编写了一个方法,并将相应的jar文件推送到Android设备。我使用以下命令从adb shell调用该方法“adb shell uiautomator runtest sample.jar -c com.practice.sample.Bluetooth #turnBluetoothOFF“。我遇到的问题是,它只能交替工作。对于第一次尝试,它可以正常工作,第二次尝试失败,出现异常”Cound not register UiAutomationService“,第三次尝试再次通过。

注意: 以上的东西在其他Android设备(三星Galaxy S3 4.2.2,三星Galaxy S4)中运行良好。我只在三星Galaxy S3 4.1.1 AT& T手机中遇到此问题。

任何解决方案或解决方案都是必要的。

代码:

// Returns Switch object of passed Text

public UiObject getSwitch(String text)抛出UiObjectNotFoundException {

return new UiScrollable(new UiSelector().scrollable(true))
.getChildByText(new UiSelector().className(LinearLayout.class.getName()),text, true).getChild(
new UiSelector().className(android.widget.Switch.class.getName()));

    }


public void turnBluetoothOFF() throws UiObjectNotFoundException {

    if (bluetoothStatus().matches("ON")) {
        getSwitch(getValue("BluetoothText")).click();
    }

我觉得这与代码无关。因为相同的代码在所有设备中都能正常工作。     }

2 个答案:

答案 0 :(得分:0)

4.1是API级别16。 大多数UIAutomator函数(如与UIObject相关的match()等函数都与min API级别17一起工作。

答案 1 :(得分:0)

只是一个建议: -

我在API 16中尝试了下面的代码,它运行正常。

    public void disableBT( UiObject btSwitch) throws Exception {

    System.out.println("Disabling BT");
    if (btSwitch.getText().equals("ON"))
        btSwitch.click();       
}