首页 > 其他 > 详细

页面对象模式(2)

时间:2019-03-21 10:57:33      阅读:192      评论:0      收藏:0      [点我收藏+]

2.1使用LoadableComponent类

  继承LoadableComponent类可以在页面加载时判断是否加载了正确页面,只需重写isLoaded和load方法

LoadLoginPage类的源代码:

package cn.pageobject;

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;

public class LoadLoginPage extends LoadableComponent<LoadLoginPage>{
    @FindBy(xpath="//input[@placeholder=‘邮箱帐号或手机号码‘]")
    public WebElement userName;
    @FindBy(xpath="//input[@placeholder=‘输入密码‘]")
    public WebElement password;
    @FindBy(xpath="//a[@id=‘dologin‘]")
    public WebElement loginButton;
    private String url ="https://mail.163.com/";
    private String title ="网易免费邮";
    public WebDriver driver;
    public LoadLoginPage(){
        System.setProperty("webdriver.chrome.driver", "D:\\WebDriver\\chromedriver_win32\\chromedriver.exe");
        driver = new ChromeDriver();
        PageFactory.initElements(driver, this);
    }
    //增加了需要覆盖的方法load
    @Override
    protected void load(){
        this.driver.get(url);
        this.driver.manage().window().maximize();
    }
    public void quit(){
        this.driver.quit();
    }
    public void login(){
        driver.switchTo().frame(0);
        userName.sendKeys("m17805983076");
        password.sendKeys("1314520a");
        loginButton.click();
    }
    public WebDriver getDriver(){
        return driver;
    }
    //增加了需要覆盖的方法isLoaded
    @Override
    protected void isLoaded() throws Error{
        Assert.assertTrue(driver.getTitle().contains(title));
    }
    
}

LoadTest163mail类的源代码:

package cn.test;

import org.openqa.selenium.WebDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

import cn.pageobject.LoadLoginPage;

public class LoadTest163mail {
    public WebDriver driver;
  @Test
  public void testLogin() throws InterruptedException {
      //生成一个LoadLoginPage对象
      LoadLoginPage loadloginpage = new LoadLoginPage();
      //继承LoadableComponent类后。只要实现了覆盖的load方法
      //即使没有定义get方法的情况下,也可以进行get方法的调用
      //get方法会默认调用页面对象类中的load方法
      loadloginpage.get();
      loadloginpage.login();
      Thread.sleep(5000);
      //断言判断登录成功后跳转页面是否包含未读邮件
      Assert.assertTrue(loadloginpage.getDriver().getPageSource().contains("未读邮件"));
      loadloginpage.quit();
  }
}

 

页面对象模式(2)

原文:https://www.cnblogs.com/z-zzz/p/10570068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!