selenium+java PageFactory实现POM 2

  • Post author:
  • Post category:java


1. 创建项目 →创建包名→创建页面类 如下:

2.实现代码如下 百度举例;

package POMDemo;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

public class BaiduPage {

	    //元素定位//登录链接
	@FindBy(xpath=".//*[@id='u1']/a[7]")
	     WebElement login_link;
	
	   //选择用户名登录方式
	@FindBy(xpath=".//*[@id='TANGRAM__PSP_10__footerULoginBtn']")
	     WebElement Ulogin;
	
	   //定位用户名文本框 
	@FindBy(id="TANGRAM__PSP_10__userName")
	     WebElement username_link;
	
       //定位密码文本框
	@FindBy(id="TANGRAM__PSP_10__password")
	     WebElement password_link;
	
	  //登录按钮 
	@FindBy(id="TANGRAM__PSP_10__submit")
	     WebElement login_submit;
	 
	 //业务逻辑和操作方法
	
	 //登录方法
	
	public void login(String username,String password) throws InterruptedException {
		
		login_link.click();
		Thread.sleep(1000);
		Ulogin.click();
		username_link.click();
		username_link.sendKeys(username);
		password_link.click();
		password_link.sendKeys(password);
		login_submit.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 POMDemo.BaiduPage;

public class BaiduPagepom {

	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("http://www.baidu.com");
		Thread.sleep(1000);
	}
	
	@Test
	public void testLogin() throws Exception {
		
		BaiduPage  bd = PageFactory.initElements(driver,BaiduPage.class);
                bd.login("登录用户名", "登录用户名密码"); //需要测试的登录账号
	}
}

运行测试脚本 运行结果;



版权声明:本文为qq_36969649原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。