首页 > 代码库 > Selenium PageFactory使用

Selenium PageFactory使用

通过FindBy查找元素

@FindBy(id="notice01")

private WebElement username;

相当于driver.findElement(By.id("notice01"));

示例:

(1)测试类:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
import com.train.loginPage;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.openqa.selenium.support.PageFactory;
public class test_01 {
	
	public static WebDriver driver =null;
	
	@BeforeClass
    public void beforeClass() {
        System.out.println("Begin");
        
    }
    
    @Test
	public  void chooseSeat() throws InterruptedException{	
		System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
		driver = new ChromeDriver();
		loginPage m =PageFactory.initElements(driver,loginPage.class);
		driver.get("http://trains.ctrip.com/TrainBooking/SearchTrain.aspx###");
			m.Search(driver,"上海");
		
	}
    
    @AfterClass
    public void afterClass() {
        System.out.println("end ");

    }

}

(2)元素类:

 

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class loginPage {
    //通过id查找元素 
    @FindBy(id="notice01")
    private WebElement username;
    
    public  static WebElement element = null;
    public static WebDriver driver =null;
    public loginPage(WebDriver driver){
        this.driver =driver;
        
    }
    public void  Search(WebDriver driver,String leave){
        this.username.sendKeys(leave);    
}

}

 

执行后:

技术分享

Selenium PageFactory使用