【问题标题】:Appium startActivity() FunctionAppium startActivity() 函数
【发布时间】:2016-10-01 17:22:07
【问题描述】:

我是 Appium 的新手,在我的代码中,我提供了所需的所需功能并编写了一个运行良好的测试用例。现在我想在相同的代码中启动另一个应用程序进行第二次测试,我该怎么做? 我听说过 startActivity(app-package,app Activity) 但它不起作用,它说 startActivity() not defined for Web Driver 。

public class Calculator {
WebDriver driver;
@BeforeClass
public void setUp() throws MalformedURLException{
//Set up desired capabilities and pass the Android app-activity and app-package to Appium
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability(CapabilityType.VERSION, "4.4");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "14085521650378");
capabilities.setCapability("appPackage", "com.android.calculator2"); // This is package name of your app (you can get it from apk info app)
capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
configurations specified in Desired Capabilities
driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515/wd/hub"), capabilities); 
}
@Test
public void testCal(){
driver.findElement(By.name("2")).click();
driver.findElement(By.name("+")).click();
driver.findElement(By.name("4")).click();
driver.findElement(By.name("=")).click();
}
@Test
public void Test2() {   driver.startActivity("appPackage", "com.tttk.apc","appActivity","com.tttk.apc.DWDemoActivity");
        for(int i=0; i<20;i++)
        driver.findElement(By.className("android.widget.ImageButton")).click();
}
@AfterClass
public void teardown(){
//close the app
driver.quit();
}}

【问题讨论】:

  • 请分享您正在使用的driver 的代码以及您调用startActivity 方法的位置。
  • @nullpointer 请查看已编辑的帖子
  • 回答同理,请使用AndroidDriver类型驱动的接口方法。
  • @nullpointer now 它没有在代码中显示错误,但是在运行代码时,只有第一个测试用例正在运行并在日志中显示“org.openqa.selenium.remote.RemoteWebDriver 不能转换为 io.appium .java_client.android.AndroidDriver"
  • true,您应使用AppiumDriverAndroidDriver 以使用appium 的此功能

标签: java android appium


【解决方案1】:

您似乎正在尝试将该方法与 WebDriver 实例一起使用。

startActivity 方法由仅由AndroidDriver 实现的接口StartsActivity 提供。所以理想情况下这应该有效:

((AndroidDriver) driver).startActivity(<appPackage>, <appActivity>);

【讨论】:

    【解决方案2】:
    public static void start() {
            try {
                ((AndroidDriver) driver).startActivity("com.example.test", "com.example.LaunchApp");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    您必须输入您的应用程序包名称和活动名称才能最大化应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 2015-11-26
      • 2011-12-23
      • 1970-01-01
      相关资源
      最近更新 更多