Selenium的PageFactory

1.在pageObjects包新建一个京东主页类,代码如下:

package pageObjects;
 
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
 
public class JdHomePage {
	
	// 元素定位
	//登录链接
    @FindBy (id="ttbar-login")
	WebElement login_link;
    
    //账户登录
    @FindBy (xpath="//*/div[@class='login-form']/div[2]/a")
   	WebElement login_withAccount;
    
    //输入用户名框
    @FindBy (id="loginname")
    WebElement inputBox_username;
    
    //输入密码
    @FindBy (id="loginpwd")
    WebElement inputBox_password;
    
    //登录按钮
    @FindBy (id="loginsubmit")
    WebElement login_submitBtn;
	
	// 业务逻辑和操作方法
    
    //登录方法
    public void login(String username, String password){
    	
    	login_link.click();
    	login_withAccount.click();
    	inputBox_username.sendKeys(username);
    	inputBox_password.sendKeys(password);
    	login_submitBtn.click();
    	
    }
    
}


2.在testSuites包下新建一个测试类,代码如下:

package testSuites;
 
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.PageFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
 
import pageObects.JdHomePage;
 
public class TestWithPOM {
WebDriver driver;
	
	@BeforeClass
	public void setUp() throws Exception{
		
		System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
		driver = new ChromeDriver();
		driver.manage().window().maximize();
		driver.get("https://www.jd.com/");
		Thread.sleep(2000);
	}
	
 
	@Test
	public void testLogin(){
		
		JdHomePage hp = PageFactory.initElements(driver, JdHomePage.class);
		hp.login("user1", "123456");
	}
	
}


处理打开浏览器和打开京东主页操作,实际测试登录的代码就2行对不对。这里我们借助了PageFactory类的方法,在初始化一个页面类的时候,也会一起把该页面定义的元素定位也会初始化,然后通过页面对象调用页面类的页面操作方法。这种方式,我们把元素定位和业务逻辑操作都写在了页面对象类中,测试脚本类,直接调用页面类的方法,这样的测试脚本看起来很简洁,方便阅读和维护,如果登录相关文案发生变更,我们只需要去改登录对应页面的元素定位和业务逻辑,不需要修改这个登录测试类。


原文:https://blog.csdn.net/u011541946/article/details/75393386

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值