JavaApp自动化测试系列[v1.0.0][Page Factory模式]


PageFactory模式

PageFactory模式的概念和PO类似,或者说是它的一种扩展,通过注解的方式定位元素对象,需要在构建函数里调用PageFactory.initElements(driver,this)来初始化PO对象,修改页面对象类文件,代码示例如下

package org.davieyang.pages;
import io.appium.java_client.android.AndroidDriver;

// PageFactory
import org.openqa.selenium.support.PageFactory;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.iOSXCUITFindBy;
import io.appium.java_client.MobileElement;

public class HomePage_PF {
AndroidDriver<?> driver;
public HomePage_PF(AndroidDriver<?> driver){
this.driver = driver;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}

// 页面对象时别,进入注册页面
@AndroidFindBy(id="startUserRegistration")
@iOSXCUITFindBy(id="startUserRegistration")
public MobileElement startRegister_btn;

// 单击注册页面按钮,进入注册页面,返回注册页面对象
public RegisterPage_PF navigate_register_page(){
this.startRegister_btn.click();
return new RegisterPage_PF(driver);
}
}

package org.davieyang.pages;
import java.util.List;
import org.openqa.selenium.By;
import io.appium.java_client.android.AndroidDriver;

import org.openqa.selenium.support.PageFactory;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.iOSXCUITFindBy;
import io.appium.java_client.MobileElement;

public class RegisterPage_PF {
AndroidDriver<?> driver;
public RegisterPage_PF(AndroidDriver<?> driver){
this.driver = driver;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}

// 页面对象时别
// 用户名
@AndroidFindBy(id="inputUsername")
@iOSXCUITFindBy(id="inputUsername")
public MobileElement username_txt;

// 邮箱
@AndroidFindBy(id="inputEmail")
@iOSXCUITFindBy(id="inputEmail")
public MobileElement email_txt;

// 密码
@AndroidFindBy(id="inputPassword")
@iOSXCUITFindBy(id="inputPassword")
public MobileElement password_txt;

// 姓名
@AndroidFindBy(id="inputName")
@iOSXCUITFindBy(id="inputName")
public MobileElement name_txt;

// 编程语言
@AndroidFindBy(id="input_preferedProgrammingLanguage")
@iOSXCUITFindBy(id="input_preferedProgrammingLanguage")
public MobileElement language_sel;
public List<MobileElement> prgLanguage;

// 是否确认注册
@AndroidFindBy(id="input_adds")
@iOSXCUITFindBy(id="input_adds")
public MobileElement accept_check;

// 注册按钮
@AndroidFindBy(id="btnRegisterUser")
@iOSXCUITFindBy(id="btnRegisterUser")
public MobileElement register_btn;

public RegisterVerifyPage_PF register_sucess(String username, String email, String password, String name,
String language, String check){
this.username_txt.sendKeys(username);
this.email_txt.sendKeys(email);
this.password_txt.sendKeys(password);
this.name_txt.clear();
this.name_txt.sendKeys(name);
this.language_sel.click();
checkedTextView(language);
if(check.equals("Yes")){
if(!this.accept_check.isSelected())
this.accept_check.click();
}
this.register_btn.click();
return new RegisterVerifyPage_PF(driver);
}

public void checkedTextView(String language){
// 使用class属性选择所有的单选按钮,并存放在一个list中
@SuppressWarnings("unchecked")
List<MobileElement> checkTextViews = (List<MobileElement>) driver
.findElementsByClassName("android.widget.CheckedTextVeiw");
// 使用for循环将List中的每个单选按钮进行遍历,查找name值为Ruby的单选按钮
// 如果该按钮未处于选中状态则调用click方法进行选择
for (MobileElement checkedTextView:checkTextViews){
if(checkedTextView.getAttribute("name").equals(language)){
if(!checkedTextView.isSelected()){
checkedTextView.click();
}
}
}
}
}

package org.davieyang.pages;
import org.openqa.selenium.By;
import io.appium.java_client.android.AndroidDriver;

import org.openqa.selenium.support.PageFactory;
import io.appium.java_client.pagefactory.iOSXCUITFindBy;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import io.appium.java_client.MobileElement;

public class RegisterVerifyPage_PF {
AndroidDriver<?> driver;
public RegisterVerifyPage_PF(AndroidDriver<?> driver){
this.driver = driver;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}

// 页面对象识别
@AndroidFindBy(id="label_name_data")
@iOSXCUITFindBy(id="label_name_data")
public MobileElement label_name_data;

// 页面对象识别
@AndroidFindBy(id="label_username_data")
@iOSXCUITFindBy(id="label_username_data")
public MobileElement label_username_data;

// 页面对象识别
@AndroidFindBy(id="label_password_data")
@iOSXCUITFindBy(id="label_password_data")
public MobileElement label_password_data;

// 页面对象识别
@AndroidFindBy(id="label_email_data")
@iOSXCUITFindBy(id="label_email_data")
public MobileElement label_email_data;

// 页面对象识别
@AndroidFindBy(id="label_preferedProgrammingLanguage_data")
@iOSXCUITFindBy(id="label_preferedProgrammingLanguage_data")
public MobileElement label_preferedProgrammingLanguage_data;

// 页面对象识别
@AndroidFindBy(id="label_acceptAdds_data")
@iOSXCUITFindBy(id="label_acceptAdds_data")
public MobileElement label_acceptAdds_data;

// 增加验证项,返回验证值
public String get_name_value(){
return this.label_name_data.getTagName().toString();
}

// 增加验证项,返回验证值
public String get_username_value(){
return this.label_username_data.getTagName().toString();
}
// 增加验证项,返回验证值
public String get_password_value(){
return this.label_password_data.getTagName().toString();
}
// 增加验证项,返回验证值
public String get_email_value(){
return this.label_email_data.getTagName().toString();
}
// 增加验证项,返回验证值
public String get_preferedProgrammingLanguage_value(){
return this.label_preferedProgrammingLanguage_data.getTagName().toString();
}
// 增加验证项,返回验证值
public String get_acceptAdds_value(){
return this.label_acceptAdds_data.getTagName().toString();
}

}

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

JavaApp自动化测试系列[v1.0.0][Page Factory模式]

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » JavaApp自动化测试系列[v1.0.0][Page Factory模式]
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏