C/C++教程

LoadableComponent类的使用

本文主要是介绍LoadableComponent类的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

通过继承LoadableComponent类,测试程序可以判断浏览器是否加载了正确的页面,只需要重写isLoaded和load二个方法,此方法有助于页面对象的页面访问操作更加稳定

 

1.LoginPage类

package com.gloryroad.pageobjects;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.ui.LoadableComponent;
import org.testng.Assert;

import java.util.concurrent.TimeUnit;
//LoadableComponent
public class LoginPage extends LoadableComponent<LoginPage> {
    private  WebDriver driver;
    private String login_url = "http://ip地址/路径";
    @FindBy(xpath = "//input[@id='login-email-address']")
    public WebElement email;
    @FindBy(xpath = "//input[@id='login-password']")
    public WebElement password;
    @FindBy(xpath = "//input[@id='Iajax-login-submit']")
    public WebElement submitbutton;
    @FindBy(className ="dialog-cancel")
    public WebElement quxiao;
    //构造函数,生成浏览器对象,初始化PageFactory对象
    public LoginPage(){
        driver = new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        PageFactory.initElements(driver,this);
    }
    //增加了需要覆盖的方法load
    @Override
    protected void load() {
        this.driver.get(login_url);
    }
    //增加了需要覆盖的方法isLoaded
    @Override
    protected void isLoaded() throws Error {
        //断言访问后的界面Title是否包含"信贷"关键字
        //判断浏览器是否加载了正确的网址
        Assert.assertTrue(driver.getTitle().contains("信贷"));
    }


  //关闭浏览器的方法
    public void quit(){
        driver.quit();
    }
    //登录操作的方法
    public void login() throws InterruptedException {
        email.sendKeys("蔡徐坤坤");
        password.sendKeys("qw123456");
        submitbutton.click();
        quxiao.click();
        Thread.sleep(3000);
    }
    public WebDriver getDriver(){
        return driver;
    }
}

 


2.Testlogin类
package com.gloryroad.tests;

import com.gloryroad.pageobjects.LoginPage;
import org.openqa.selenium.WebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;


public class Testfanwe {
    private  LoginPage loginPage = new LoginPage();
    private  WebDriver driver;
    @BeforeMethod
    public void getConf(){
         driver = loginPage.getDriver();
    }
    @Test
    public void test_f_login() throws InterruptedException {
        //继承LoadableComponent类后,只要实现了覆盖的load方法
        //即使在没有定义get方法的情况下,也可以进行get方法的调用
        //get方法会默认调用页面对象类中的load方法
        loginPage.get();
        loginPage.login();
        //判断登录后的页面是否"蔡徐坤坤"关键字,验证是否成功登录
        Assert.assertTrue(driver.getPageSource().contains("蔡徐坤坤"));
    }

    @AfterMethod
    public void quit(){
        loginPage.quit();
    }
}

 

 

 

这篇关于LoadableComponent类的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!