无法确定本机android automation/Java是否禁用了按钮
我正在本地android应用程序上执行一些appium自动化,我遇到了以下情况: 我有一个登录按钮,它具有以下特征(见所附的屏幕截图)。现在,无论登录按钮是启用还是禁用,您在屏幕截图中看到的特征都不会改变。这是一个问题,因为我想测试登录按钮是否基于某些文本输入标准被禁用 我不确定是否有其他东西在驱动登录按钮,使其处于启用或禁用状态(顺便说一句,按钮是启用还是禁用,在视觉上看起来是相同的) 有人对我如何解决这个问题有什么想法吗?如果我不能在检查按钮方面做任何事情,我能想到的唯一一件事(如果可能的话)是,在我单击登录按钮后,以某种方式确定我仍保持在同一页面上(可能等待没有显示重试消息,以及检查登录按钮仍保持在页面上)无法确定本机android automation/Java是否禁用了按钮,java,android,automation,appium,Java,Android,Automation,Appium,我正在本地android应用程序上执行一些appium自动化,我遇到了以下情况: 我有一个登录按钮,它具有以下特征(见所附的屏幕截图)。现在,无论登录按钮是启用还是禁用,您在屏幕截图中看到的特征都不会改变。这是一个问题,因为我想测试登录按钮是否基于某些文本输入标准被禁用 我不确定是否有其他东西在驱动登录按钮,使其处于启用或禁用状态(顺便说一句,按钮是启用还是禁用,在视觉上看起来是相同的) 有人对我如何解决这个问题有什么想法吗?如果我不能在检查按钮方面做任何事情,我能想到的唯一一件事(如果可能的话
谢谢实际上,Appium支持这种检查:
如果仍然总是返回相同的结果,我建议检查应用程序的源代码以确保属性设置正确。更好的做法是修复应用程序的可测试性,而不是通过单击进行黑客检查。目前,appium无法检测按钮是启用还是禁用。因此,我看到的唯一解决方案是单击按钮并检查它是否保持在同一屏幕上,以验证按钮是否已禁用。很酷,有没有一种奇特的方法可以不在另一屏幕上进行检查,或者只查看页面上的一些元素,如登录按钮、登录标题和用户名字段?如果您使用的是页面对象模型,您可以很容易地检查屏幕是否已更改。您可以实现一些方法,如isScreenDisplayed()
public boolean isScreenDisplayed(){try{if(element.isDisplayed){return true;}else{return false;}}}}catch(Exception e){return false;}}}
Awesome,谢谢大家如果有帮助,可以对评论进行投票。
MobileElement element = (MobileElement) driver.findElementByResourceId("login_submit");
boolean isEnabled = element.isEnabled();