pagefactory.initelements 和 Class 实例之间的区别

Difference between pagefactory.initelements and Class instance

我是 java 的新手。

  1. 我无法理解 Pagefactory.initelements 和 Class 实例之间的区别。有人可以帮我吗?这个问题的原因是:

我能看到的唯一区别是网络元素初始化,除此之外别无其他。两者都可用于访问 class 变量和方法。

  1. Somename.class 会和 'new someclass()' 一样吗?

页面工厂使用 Java Reflection API。它还为开发人员提供了 2 public 个构造函数。一个接受已经实例化的对象作为参数。第二个允许你传递 Object.class 这不是一个实例,它更像是一个 class.

的模式
PageFactory.initElements(driver, this);

上述方法接受页面对象的实例,已经创建实例。然后,它获取它的模式,读取字段并根据 @FindBy 注释对其进行初始化。

PageFactory.initElements(driver, PageObject.class)

上面的 class 已经有了架构,所以它初始化字段和 returns 新创建的 PageObject 实例 class.