-1

我是java新手。

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

我能看到的唯一区别是 webelement 初始化,除此之外什么都没有。两者都可用于访问类变量和方法。

  1. Somename.class 会和 'new someclass()' 做同样的事情吗?
4

1 回答 1

0

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

PageFactory.initElements(driver, this);

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

PageFactory.initElements(driver, PageObject.class)

上面的类已经有模式,所以它初始化字段并返回一个新创建的PageObject类实例。

于 2019-08-30T13:21:55.643 回答