尝试对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只支持通过id
或xpath
定位元素
因此,请尝试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无法识别元素。