【问题标题】:Automate browser and native app自动化浏览器和本机应用程序
【发布时间】:2017-01-17 12:10:15
【问题描述】:

我想使用 Appium 在 Android 上自动化以下场景

  1. 首先在 Chrome 中打开一个网页。该网页包含一个 登记表
  2. 填写表格然后点击提交按钮
  3. 提交按钮通过 uri 打开我的本机应用程序(相同的行为 当我们通过点击链接市场打开 Google Play://...)
  4. 终于与应用互动了

我可以使第 1 步到第 3 步自动化,但卡在第 4 步。

Appium 可以做到这一点吗?有没有其他测试框架可以自动化这样的场景?

【问题讨论】:

  • 第 3 步之后会发生什么?第 3 步之后的 Appium 日志可能有助于了解问题所在。
  • 第 3 步后,应用程序打开,但功能 driver.findElement(By.id("my_button_id")) 不起作用
  • 请在您的 appium 日志中从那个时间点到结束进行编辑。如果需要,请随意编辑任何特定于应用的标识符

标签: android testing automated-tests appium ui-automation


【解决方案1】:

问题似乎与从 webview 上下文更改为本机应用程序自己的上下文有关。这是在 Java 中使用命令 driver.context("NATIVE_APP");

完成的

要查看所有可用的上下文,请使用driver.getContextHandles();,它会返回一个包含所有可用上下文的Set<String>

本机上下文始终称为“NATIVE_APP”,网络视图通常被索引为“WEBVIEW_0”、“WEBVIEW_1”等。

与应用程序的所有与 webview 不直接相关的交互,通常需要在“NATIVE_APP”上下文中完成。

【讨论】:

    【解决方案2】:

    您似乎有超时异常,只需将您的代码更改为driver.find_element(By.id("my_button_id"))

    WebDriverWait(driver, 10).until(lambda:driver.find_element(By.id("my_button_id")))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 2015-10-29
      • 2011-09-20
      • 2020-07-19
      • 2012-05-07
      • 2013-03-02
      • 1970-01-01
      相关资源
      最近更新 更多