android - 使用 Appium 测试多个 Activity

标签 android appium

我的应用包含多个 Activity 。流程是:

启动画面 -> Activity 1 -> Activity 2 -> Activity 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 将始终尝试在当前运行的 Activity 中查找元素,即使它是 SplashScreen。如果失败,它将一次又一次地尝试。我的问题是:

  1. 如何检测当前的运行 Activity ?
  2. 我如何考虑当前的 Activity ?如果元素在当前上下文中不存在,我认为 Appium 没有必要尝试查找这些元素。

基本上,我要问的问题是:如果有多个 Activity ,测试应用的特定流程的正确方法是什么?

我试图找到示例代码,但找不到适用于这种特定情况的示例代码。

最佳答案

那么,第一个问题的答案是使用 driver.currentActivity()

我们不应该担心应用程序的当前 Activity 。最好编写代码来简单地检查元素在当前上下文中是否可用。 好吧,如果您的要求是先验证 Activity ,然后查找元素,然后使用 String currentActivity=driver.currentActivity()

关于android - 使用 Appium 测试多个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34587491/

相关文章:

java - 如何使用自动化测试 Google 购买对话框?

ios - 对于非程序员来说,快速识别代码生成的 UIViews 的快速方法是什么?

php - 如何让php添加utf8字符

java - 什么更快 - 将数据存储在列表中或数据库中? (安卓)

java - WIFI 连接时获取 SSID?

python - 在python和appium中,为什么不能使用send_keys()到输入框

java - 在 Netbeans 中连接到服务器端 (PHP) 期间客户端 (Android) 出现错误

android - 拖动折线 onMarkerDrag Android 谷歌地图 v2

json - 在 Java 中使用 TestNG 从 JSON 读取测试数据

google-chrome - Android Chrome浏览器上的YouTube页面(WebView)自动化