使用@FindBy定位元素,必须在使用PageFactory初始化该页面。
通过查看PageFactory类,我们可以知道它是一个初始化一个页面实例的功能,在实例化该页面对象时候,也会一起实例化该页面的元素定位
LoginPage login = PageFactory.initElements(driver,LoginPage.class);
public class LoginPage { private WebDriver driver;//定义一个driver @FindBy(xpath="//input[@id='ap_email']") private WebElement loginPhone;//登录手机号 @FindBy(xpath="//input[@id='ap_password']") private WebElement loginPassword;//登录密码 @FindBy(xpath="//input[@id='signInSubmit']") private WebElement loginButton;//定义登录按钮 //必须在使用PageFactory初始化该页面。 public LoginPage(WebDriver driver){ this.driver = driver; PageFactory.initElements(driver, this); } //定义手机号的方法 public void setPhone(String logPhone){ loginPhone.sendKeys(logPhone); } //定义密码的操作方法 public void setPassword(String logPassword){ loginPassword.sendKeys(logPassword); } //定义登录操作 public void login(){ loginButton.click(); }}