使用PageFactory类封装页面元素,并实现简单的登录

1.新建页面对象类LoginPage

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 java.util.concurrent.TimeUnit;

public class 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);
    }
    //登录的url方法
    public void Load(){
        driver.get(login_url);
    }
    //关闭浏览器的方法
    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


import com.gloryroad.pageobjects.LoginPage;
import org.openqa.selenium.WebDriver;
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 {
        loginPage.Load();
        loginPage.login();
    }

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

 

posted @ 2021-08-18 19:24  韩伊  阅读(105)  评论(0)    收藏  举报