zoukankan      html  css  js  c++  java
  • PO页面对象模式封装

    PO的主要价值体现在对界面交互细节的封装,这样可以使测试案例可以更关注与业务而非界面细节,提高测试案例的可读性。


     
    以传统的登陆页面为例實現PO模式,因为每个用例中都需要登陆。
    其中需要使用PageFactory.initElements()工厂方法,此方法也可以解决页面元素过期的问题。
     。。
    页面层,对用例中需要用到的元素定义的Page文件中。
    /**
     * 登陆页页面元素
     * @author herry
     *
     */
    public class LoginPage {
    @FindBy(id="ploginname")
    public static WebElement username;
    @FindBy(id="j_password")
    public static WebElement password;
    @FindBy(id="captchaCode")
    public static WebElement code;
    @FindBy(css="a.account_15")
    public static WebElement sumbitButton;
    }
     
     
    //封裝主要的業務功能操作,例如這裡的登陸功能,
    public class LoginUK_Control extends LoginPage {
    LoginPage loginPage=PageFactory.initElements(driver, LoginPage.class);
    /**
    * 登录loginUK
    * @param username
    * @param pass
    * @param code
    * @param flag 账户状态
    */
    public LoginUK_Control(String username,String pass,String code) {
    loginPage.username.clear();
    loginPage.username.sendKeys(username);
    loginPage.password.clear();
    loginPage.password.sendKeys(pass);
    loginPage.code.clear();
    loginPage.code.sendKeys(code);
    loginPage.sumbitButton.click();
     
    }
    }
     
    //在用例層面,每次調用登陸業務時,只需要調用control方法,無需關注頁面層面,這樣如果頁面層面有改動,也只需修改Page方法即可。
    @Test(dataProvider = "dataFortestMethod")
    public void NZ_Front_001(Map<String, ArrayList<String>> data) {
    driver.get(config.getValue("config.LoginUKURL"));
    new  Control(data.get("username").get(0).toString(), data
    .get("password").get(0).toString(), data.get("code").get(0)
    .toString());
    assertEquals(driver.getTitle(),
    Init.properties.getValue("forexHome.title"));
    home.loginOut.click();
    }
  • 相关阅读:
    SpringBoot学习笔记
    2021牛客多校第一场 I题(DP)
    CSS小结
    AOP小结
    IOC容器小结
    Educational Codeforces Round 56 (Rated for Div. 2) G题(线段树,曼哈顿距离)
    Codeforces Round #656 (Div. 3) E. Directing Edges(拓扑排序)
    Educational Codeforces Round 101 (Rated for Div. 2) E
    [FJOI2017]矩阵填数 (容斥原理)
    优秀代码样板收集计划(python)
  • 原文地址:https://www.cnblogs.com/shengs/p/7979733.html
Copyright © 2011-2022 走看看