我是PageFactory
的新手,并参考了这个教程https://www.toptal.com/selenium/test-automation-in-selenium-using-page-object-model-and-page-factory
本页的一个例子:
public class HomePage {
private WebDriver driver;
//Page URL
private static String PAGE_URL="https://www.toptal.com";
//Locators
//Apply as Developer Button
@FindBy(how = How.LINK_TEXT, using = "APPLY AS A DEVELOPER")
private WebElement developerApplyButton;
//Constructor
public HomePage(WebDriver driver){
this.driver=driver;
driver.get(PAGE_URL);
//Initialise Elements
PageFactory.initElements(driver, this);
}
public void clickOnDeveloperApplyButton(){
developerApplyButton.click();
}
}
WebDriver
的私有实例?它出现在我的黄线上。how = HOW
以及我们何时可以立即使用xpath= //id..
?WebDriver
个参数?答案 0 :(得分:0)
黄色行是因为您没有使用与类一起声明的驱动程序变量,而是将您作为变量传递给构造函数的变量。尝试使用:
this.driver.get(PAGE_URL);
//Initialise Elements
PageFactory.initElements(this.driver, this);
当您不使用how.LINK_TEXT时,您可以立即使用xpath = "//div"
,因为如果您想通过LINK_TEXT找到元素,还必须提供搜索链接的文本。
在构造函数中,您正在传递驱动程序实例,因此在创建页面对象时,它具有驱动程序实例,因为它不是实例化驱动程序的页面。