【问题标题】:Appium. How to findElement on activity that has `android:launchMode="singleInstance"` flag?Appium。如何在具有 `android:launchMode="singleInstance"` 标志的活动上查找元素?
【发布时间】:2018-10-15 11:20:08
【问题描述】:

我在为原生 android 应用创建自动化测试时遇到了问题(使用来自 webdriver.io + typescript 的 appium)。

目前我正在尝试通过 id 在 android manifest 中有 android:launchMode="singleInstance" 的活动上单击按钮。

我遇到了 appium 在此活动中找不到任何元素的问题。 日志看起来像:

[debug] [JSONWP Proxy] Proxying [POST /elements] to [POST http://localhost:8203/wd/hub/session/8938c098-48e6-4e7b-b9fd-4cf69034058c/elements] with body: {"strategy":"id","selector":"callStatus","context":"","multiple":true}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"8938c098-48e6-4e7b-b9fd-4cf69034058c","status":0,"value":[]}
[debug] [MJSONWP] Responding to client with driver.findElements() result: []

顺便说一句。我无法使用 UIAutomatorView 检查该活动,看起来问题也与它有关。

如果删除 android:launchMode="singleInstance" 标志 - 一切都会正常工作。

如何解决这个问题?

如何找到带有android:launchMode="singleInstance" 标志的活动元素?

【问题讨论】:

    标签: android automated-tests appium webdriver-io


    【解决方案1】:

    如果驱动程序找不到元素,请检查它目前面临的 XML 结构:driver.source()

    也许它会返回其他活动/片段的 XML 表示。 您还可以仔细检查当前获得的上下文数量:driver.contexts();

    如果有超过 1 个 NATIVE_APP 上下文,那么您可能需要切换另一个。

    【讨论】:

    • tnx 寻求建议。会检查
    • 很遗憾只有一个上下文 =(
    • driver.source() 输出呢?您是当前屏幕还是上一个屏幕中的元素?
    • 其实我已经找到Appium失败的原因了。由于一些奇怪的行为,将 waitForExist 超时时间增加到 20 秒(以前是 10 秒) 显示活动,但 Appium 在 10 秒内找不到任何元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 2019-03-28
    相关资源
    最近更新 更多