【问题标题】:Unable to determine a button is disabled with native android automation/Java无法确定按钮已被本机 android 自动化/Java 禁用
【发布时间】:2019-08-26 14:40:18
【问题描述】:

我在原生 android 应用程序上执行一些 appium 自动化,但遇到以下情况:

我有一个登录按钮,它具有以下特征(见附件截图)。现在,无论登录按钮是启用还是禁用,您在屏幕截图中看到的那些特征都不会改变。这是一个问题,因为我想根据某些文本输入条件测试登录按钮是否被禁用。

我不确定是否有其他东西在驱动登录按钮的启用或禁用(顺便说一下,无论按钮是启用还是禁用,它在视觉上看起来都是一样的)。

有人对我如何解决这个问题有任何想法吗?如果我在检查按钮方面无能为力,我唯一能想到的(如果可能的话)就是在我单击登录按钮后以某种方式确定我仍然在同一页面上(也许等待没有重试消息显示以及检查登录按钮是否保留在页面上)。

谢谢

【问题讨论】:

  • 目前 appium 无法检测按钮是启用还是禁用。所以我看到的唯一解决方案是单击按钮并检查它是否保持在同一屏幕中以验证按钮是否被禁用。
  • 酷,那么有没有一种奇特的方法可以检查不在另一个屏幕上,或者只是查看页面上的一些元素,如登录按钮、登录标题和用户名字段?
  • 如果您使用的是页面对象模型,您可以轻松检查屏幕是否已更改。您可以实现一些方法,例如 isScreenDisplayed()public boolean isScreenDisplayed(){ try { if(element.isDisplayed) { return true; }else {return false;} }catch(Exception e){ return false; }}
  • 太棒了,谢谢Suban
  • 如果有帮助,您可以点赞评论。

标签: java android automation appium


【解决方案1】:

实际上,Appium 确实支持这种检查:element/:element_id/enabled

MobileElement element = (MobileElement) driver.findElementByResourceId("login_submit");
boolean isEnabled = element.isEnabled();

如果仍然总是返回相同的结果,我建议检查应用程序的源代码以确保属性设置正确。修复应用程序的可测试性而不是通过点击进行骇人听闻的检查要好得多。

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 2020-09-01
    相关资源
    最近更新 更多