首页 > 解决方案 > 当我以前运行 Appium 页面对象模型代码时,它显示错误,例如“无法通过此策略定位元素:定位器映射:”

问题描述

当我尝试运行 Appium 页面对象模型代码时,它显示如下错误

“无法通过此策略定位元素:定位器地图:”。

有时测试用例会执行,有时会导致上述错误。

登录.Java:

public LoginActions(){

    PageFactory.initElements(new AppiumFieldDecorator(DriverClass.getDriver()), this.loginLocators);
}

public void loadLoginPage(String username, String password) {
    this.loginViscenario(username, password);

}

public void click() {
    this.clickActions();
}

private void loginViscenario(String uname, String pwd) {
    loginLocators.username.sendKeys(uname);
    loginLocators.password.sendKeys(pwd);
    //commonActions.sendKeys(loginLocators.username, uname);
    //commonActions.sendKeys(loginLocators.password, pwd);
    DriverClass.getDriver().manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

}

private void clickActions() {
    loginLocators.login.click();
    DriverClass.getDriver().manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
}

它随机抛出错误。它应该像正常一样运行,并且在给出正确的 xpath 之后,视图没有点击。

标签: appiumappium-android

解决方案


在您的页面对象模型中,您必须添加提及其定位器策略的元素。根据您的要求,在您的页面对象模型中添加以下元素,例如电子邮件、密码、按钮等。

//you can use id, accessibility or xpath
@AndroidFindBy(id = "element id here")
private MobileElement button1;

@AndroidFindBy(accessibility = "element id here")
private MobileElement textInput1;

public void click() {
   button1.click();
}

public void enterEmail(){
    textInput1.sendKeys("emailId@abc.com"):
}

推荐阅读