java - 页面对象应该在哪里实例化?

标签 java selenium pageobjects

我想知道应该在哪里实例化我的 Page 对象? 这是我的项目层次结构:

Pages:包含带有构造函数的所有页面对象,例如

public LoginPage extends BasePage
 {
   super(driver);
   PageFactory.initElements(driver, this);
}

我的 BasePage 包含所有常用方法,例如表处理、从 webtable 收集数据等。

我有一个包含所有页面对象实例化的baseTest,我的测试扩展了此类。

LoginPage loginPage = new LoginPage(driver);

我还有用于导航、数据库连接、自定义等待等的辅助(非静态)类。

有什么最佳实践吗? Basetest 是实例化它们的正确位置吗?

谢谢!

最佳答案

我在测试代码中实例化页面对象,但不实例化基类,因为场景需要。例如,

@Test(dataProvider = PROVIDER)
public void testLogin(WebDriver driver, Info info) {
  Login login = new Login(driver);
  assertTrue(login.isDisplayed());
  login.enterCredentials(info.getUser(), info.getPw());
  Welcome welcome = new Welcome(driver);
  assertTrue(welcome.isDisplayed());
}

这只是使用页面对象的一种方法。

小心不要编写太多的“帮助”类,或者继承层次结构太深。

关于java - 页面对象应该在哪里实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43727174/

相关文章:

java.lang.ClassNotFoundException : com. sun.org.apache.xml.internal.resolver.CatalogManager Java 11

java - 如何等待页面上滚动的元素

java - 如何扩展 Selenium 的 FindBy 注释

python - 无法解析网页中不同海报的链接

java - 在页面对象模式中返回新的页面对象有什么好处?

javascript - JavaScript 是否与严格的页面对象模式兼容?

Java并发,什么情况下CompletableFuture.supplyAsync()会返回null

java - 构造函数不能应用于给定类型?实际参数列表和形式参数列表的长度不同

selenium - PageFactory 中的 StaleElementReference 异常

java - Selenium 获取 .har 文件