appium - 当我以前运行 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 之后,视图没有点击。
解决方案
在您的页面对象模型中,您必须添加提及其定位器策略的元素。根据您的要求,在您的页面对象模型中添加以下元素,例如电子邮件、密码、按钮等。
//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"):
}
推荐阅读
- javascript - 如何减少If语句?
- python - 如何修改matplotlib中的图例和背景?
- sql - 将行连接成一定长度的字符串
- python - Pandas dataframe.to_html() - 编辑文本颜色并添加标题列的背景颜色
- html - 如何将单元格内的 HTML 文本查看到谷歌表格中的新 html 选项卡
- python - 遍历 pandas 行,寻找一个特定的数字并计算我们遇到它的次数
- elasticsearch - 如何过滤具有相同嵌套属性值的文档
- mongodb - MongoDb 使用聚合时的排序问题
- spring-boot - @RestControllers 中有 @before 和 @after 的等价物吗?
- python - 在网络抓取时捕获连接错误等