在android模拟器中正确获取当前活动的另一种方法是什么

问题描述 投票:0回答:1

我正在尝试使用 Acvitity 方法进行 Android 测试。

public void setActivity() {         
    Activity activity =  new Activity("com.androidsample.generalstore","com.androidsample.generalstore.MainActivity");
    ((JavascriptExecutor)driver).executeScript("mobile: startActivity", ImmutableMap
            .of("intent", "com.androidsample.generalstore/com.androidsample.generalstore.MainActivity"));     
}

@BeforeMethod(enabled = true)     
public void preSetup() {         //screen to homepage         
    formPage.setActivity();     
}

adb shell dumpsys window | find "mCurrentFocus"   mCurrentFocus=Window{38760a4 u0 com.androidsample.generalstore/com.androidsample.generalstore.MainActivity}

我不断收到错误消息

org.openqa.selenium.WebDriverException:处理命令时发生未知的服务器端错误。原始错误:执行 adbExec 时出错。原始错误:'命令'C:\ Users \ Irvin \ AppData \ Local \ Android \ Sdk \ platform-tools db.exe -P 5037 -s emulator-5554 shell am start-activity com.androidsample.generalstore/com.androidsample .generalstore.MainActivity' 退出,代码为 255';命令输出: 执行“start-activity”时发生异常:`

我尝试使用旧版本来执行此操作,但该方法已失效并且不再有效。有人知道这个问题的解决方法吗?

java android testing mobile appium
1个回答
0
投票

在appium2.0中可以直接使用startactivity()方法来启动任何activity。这里不需要使用javascript执行器

public void setActivity() {         
Activity activity = new Activity("com.androidsample.generalstore", "com.androidsample.generalstore.MainActivity");
driver.startActivity(activity); 

}

© www.soinside.com 2019 - 2024. All rights reserved.