当前位置: 首页 > 知识库问答 >
问题:

在自动化方面做了很多努力后,无法找到android原生应用程序的验证

邴越彬
2023-03-14

我正在做Android原生应用程序的自动化,想要验证与文本的登录验证。当我试图使用Appium inspector和UIAutomator选择它时。两个都无法找到验证部分,所以很难选择它。

我尝试了不同论坛和Appium讨论中的代码,但仍然无法找到通过自动化进行的验证。我尝试了以下方法:

代码1

JavascriptExecutor js = (JavascriptExecutor)driver;

WebElement field = driver.findElement(By.xpath("//android.widget.EditText[@text='Enter mobile number']"));
// Boolean is_valid = (Boolean)js.executeScript("return arguments[0].checkValidity();", field);

try {
    String message = (String) js.executeScript("return arguments[0].validationMessage;", field);
} catch (Exception E) {
public boolean IsValidationFired() {
    if(driver.getPageSource().contains("Invalid")) {
        System.out.println("PASS");
    } else {
        System.out.println("FAIL");
    }
}

用于激发验证的代码为:ContactNu.SetError(“无效电话号码.”);

共有1个答案

慎建本
2023-03-14

我一直在做Android应用测试自动化从过去两年。我曾多次遇到同样的问题。不幸的是,uiAutomator没有检测到这类元素,因此我们无法对这类元素执行任何操作。

Appium在内部向uiAutomator发送命令,uiAutomatar在设备上执行操作。如果uiAutomator看到那些元素,uiAutomator可以执行操作。

因此,我建议您不要在使用java脚本或xPath上花费太多时间,因为我已经尝试过hose解决方案,但没有一个可行。

 类似资料:
  • 生成图像时出错 我激活了USB调试工具。当我尝试在命令提示符中运行adb设备命令时,它什么也没有给我。

  • 环境:Eclipse-Java-Junit-Firefox web driver 屏幕截图网址 : https://www.dropbox.com/s/26fl2l1y1mkpxiz/Screenshot 2014-01-06 01.52.43.png 我试图测试一个网页,但找不到元素(看起来像按钮)。Firebug的xpath是:<code>/*〔@id='DERIVED_REGFRM1_LIN

  • 我用react Native做了一个应用程序。应用程序连接到我制作的api。我执行了以下步骤:https://facebook.github.io/react-native/docs/signed-apk-android,现在如果我执行react-native run-android-variant=release,应用程序就不工作了。有没有办法看看我有没有什么错误什么的? 我想要的应用程序的工作

  • 我在playstore有一个11K的应用程序。该应用程序是本地Java的。我做了一个react原生应用程序与相同的包名,并更改了jks密钥到密钥存储文件和更改了版本代码。我正在使用的应用程序存储jks文件,我得到这个错误,我知道通过卸载解决,但我不能告诉用户卸载,有没有其他方式执行失败的任务':app:installrelease'。 com.android.builder.testing.api

  • 我有一个用Kotlin(android studio)编写的android应用程序和用React Native编写的应用程序的UI。我的问题是这些能联系在一起吗?如果是,怎么做?还有,你们能发布一些我可以通过的链接吗。 附注:我对react Native一无所知。

  • 我正尝试使用WinApp驱动程序在Visual Studio 2017中自动化扩展(WPF)的UI,但在使用inspect.exe(Windows SDK)捕获元素时找不到自动化id 最初,当通过inspect.exe检查时,找不到自动化ID。因此,我在XAML文件的automation属性中设置了automation id,并将新的VSIX安装回Visual Studio中,但在捕获元素时,上述