当我们使用@findBy注释时,为什么我们使用initelement方法初始化web元素,而在driver.findElement()中我们不需要初始化?
@FindBy(id="search")
WebElement searchTextBox;
public PageFactoryDemoClass(WebDriver driver){
this.driver = driver;
}
因为在初始化之前,这些对象/元素不是已处理代码块的一部分。它是用于创建实例的对象,Driver无法知道它们是构建还是加载的。
你可以这样思考,在初始化之前你也不能使用另一个类。如果你问这个问题,我认为你应该检查一下OOP的基础。
Here是关于为什么初始化很重要的好文章。