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设计模式
org.openqa.selenium.support.pagefactory.findElement的java.lang.NullPointerException(DefaultElementLoc