除了WebView中的Android应用程序上的id外,定位器不起作用



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

我有一个有电子邮件和密码的登录屏幕,它确实有id定位器。这很好,我能够定位元素。ITs的混合应用程序与离子。登录按钮没有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");

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

有人能为我推荐好的图书馆吗?我感谢你事先的帮助。

感谢

我很长一段时间没有使用Appium,所以可能我错了,但我记得,Appium只支持通过idxpath定位元素
因此,请尝试findElementByXpath,而不是findElementByName
定位器应该相应地更改,因此它将类似

WebElement LoginButton = appiumdriver.findElementByXpath("//*[@name='end']");

我已经对代码进行了某些更改。

将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");

也许老Appium无法识别元素。

相关内容

最新更新