【发布时间】:2016-04-07 20:23:32
【问题描述】:
我的应用包含多个活动。流程是:
SplashScreen -> 活动 1 -> 活动 2 -> 活动 3 -> ?
Activity 1 有一个通向 Activity 2 的按钮。
Activity 2 有一个 editText(必须填写),然后是一个指向 Activity 3 的按钮。
Activity 3 有通向应用其余部分的按钮
我的代码目前所做的是:
//Define WebDriver
dr = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
dr.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//Activity 1
dr.findElement(By.id("com.package.name:id/btnLoginWithEmail")).click();
//Activity2
dr.findElement(By.id("com.package.name:id/emailField")).clear();
dr.findElement(By.id("com.package.name:id/emailField")).sendKeys("user@domain.com");
dr.findElement(By.id("com.package.name:id/btnVerifyEmail")).click();
据我了解,Appium 将始终尝试在当前运行的活动中查找元素,即使它是 SplashScreen。如果失败,它将一次又一次地尝试。我的问题是:
- 如何检测当前的跑步活动?
- 如何考虑当前活动?如果元素在当前上下文中不存在,我认为 Appium 没有任何意义。
基本上,我要问的问题是:如果有多个活动,测试应用程序的特定流程的正确方法是什么?
我试图找到示例代码,但找不到适合这种特定场景的示例代码。
【问题讨论】: