除了 WebView 中的 Appium for Android 上的 id 之外,定位器不起作用

Kri*_*hna 7 java testing selenium android appium

尝试对在 WebView 中编码的 Android 应用程序进行测试。我有一个应用程序,我正在尝试自动化测试用例。

我有一个包含电子邮件和密码的登录屏幕,其中包含 ID 定位器。这工作正常,我能够找到元素。用离子制作的 IT 混合应用程序。登录按钮没有 ID 定位器。

到目前为止,我已经尝试过这件事。

MobileWebBrowserFactory factory;
AndroidDriver<WebElement> appiumdriver;
WebElement LoginElement = appiumdriver.findElement(By.id("username"));
LoginElement.click();
LoginElement.sendKeys("Test");

WebElement PasswordElement = appiumdriver.findElement(By.id("password"));
PasswordElement.click();
PasswordElement.sendKeys("Test");
// Hide Keyboard
appiumdriver.hideKeyboard();
Thread.sleep(2000);

            WebElement LoginButton = appiumdriver
                    .findElementByName("end");
Run Code Online (Sandbox Code Playgroud)

它给了我一个例外,即不允许定位器始终查找名称。我使用过 Android 和 appium 驱动程序。

任何人都可以为此向我建议好的图书馆吗?我提前感谢您的帮助。

谢谢

Kri*_*hna 3

我对代码做了一些更改。

将 Appium 服务器更改为 1.10 至 1.20.2。使用的 Android 驱动程序实例。

此外,还使用了 Xpath 作为非离子框架。

它为我解决了这个问题,我可以使用它来定位元素。

        WebElement UsernameElement = appiumdriver.findElementByXPath("//*[@id=\"username\"]/input");
        Thread.sleep(1000);
        UsernameElement.click();
        Thread.sleep(1000);
        UsernameElement.sendKeys("mobile3@20212.com");
Run Code Online (Sandbox Code Playgroud)

也许旧阿皮姆无法识别该元素。