Selenium PageFactory使用

Posted 大牛测试技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium 和 Java 通过 PageFactory 等待元素不可见

Selenium的PageFactory & PageObject 在大型项目中的应用

Selenium Webdriver 和 PageFactory 初始化 List<WebElement> 元素

Selenium:使用PageFactory实现PagaObject设计模式

Selenium PageFactory页面对象

org.openqa.selenium.support.pagefactory.findElement的java.lang.NullPointerException(DefaultElementLoc