@FindBy(id=“aaa”)
这个注解的意思是定位id为aaa的元素,相当于driver.findElement(By.id(“aaa”)),
支持的类型有:className、css、id、linkText、name、partialLinkText、tagName、xpath
PageFactory提供的是静态方法,可以直接调用,一般在用完@FindBy后,需要进行元素初始化,则需要调用initElements(driver, this);方法。
用法如下:
1.新建test005类,找到用户名和密码这两个元素,并输入用户名和密码
package selenium3;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class test005 {
@FindBy(id="u") //通过id=u找到用户名输入框
WebElement username;
@FindBy(id="p") //通过id=p找到密码输入框
WebElement password;
WebDriver driver = null;
//写一个login方法输入用户名和密码
public void login(String Username,String Password){
username.sendKeys(Username);
password.sendKeys(Password);
}
}
2.新建一个类,在主方法里调用test005里的方法
test005 t = PageFactory.initElements(driver, test005.class);
t.login("用户名", "密码");