自动化浏览器和本机应用程序
Automate browser and native app
我想使用 Appium 在 Android
上自动执行以下场景
- 首先在Chrome中打开一个网页。该网页包含一个
登记表
- 填写表格然后点击提交按钮
- 提交按钮通过 uri 打开我的本机应用程序(相同的行为
当我们通过点击 link market://...)
打开 Google Play
- 终于与应用互动了
我可以使第 1 步到第 3 步自动化,但卡在了第 4 步。
Appium 可以吗?有没有其他测试框架可以自动化这种场景?
您似乎遇到了超时异常,只需更改您的代码 driver.find_element(By.id("my_button_id"))
至
WebDriverWait(driver, 10).until(lambda:driver.find_element(By.id("my_button_id")))
看来问题与从 webview 上下文更改为本机应用程序自己的上下文有关。这是在 Java 中使用命令 driver.context("NATIVE_APP");
完成的
要查看所有可用的上下文,请使用 driver.getContextHandles();
,其中 returns 一个具有所有可用上下文的 Set<String>
。
本机上下文始终称为 "NATIVE_APP",网页视图通常被索引为 "WEBVIEW_0"、"WEBVIEW_1" 等等。
所有与 webview 不直接相关的应用程序交互通常需要在 "NATIVE_APP" 上下文中完成。
我想使用 Appium 在 Android
上自动执行以下场景- 首先在Chrome中打开一个网页。该网页包含一个 登记表
- 填写表格然后点击提交按钮
- 提交按钮通过 uri 打开我的本机应用程序(相同的行为 当我们通过点击 link market://...) 打开 Google Play
- 终于与应用互动了
我可以使第 1 步到第 3 步自动化,但卡在了第 4 步。
Appium 可以吗?有没有其他测试框架可以自动化这种场景?
您似乎遇到了超时异常,只需更改您的代码 driver.find_element(By.id("my_button_id"))
至
WebDriverWait(driver, 10).until(lambda:driver.find_element(By.id("my_button_id")))
看来问题与从 webview 上下文更改为本机应用程序自己的上下文有关。这是在 Java 中使用命令 driver.context("NATIVE_APP");
要查看所有可用的上下文,请使用 driver.getContextHandles();
,其中 returns 一个具有所有可用上下文的 Set<String>
。
本机上下文始终称为 "NATIVE_APP",网页视图通常被索引为 "WEBVIEW_0"、"WEBVIEW_1" 等等。
所有与 webview 不直接相关的应用程序交互通常需要在 "NATIVE_APP" 上下文中完成。