有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JavaScript与严格的页面对象模式兼容吗?

我使用Java(https://code.google.com/p/selenium/wiki/PageObjects)的页面对象模式构建了各种测试自动化框架

我发现的两大好处是:

1)当你有一个页面实例时,你可以看到可用的方法(例如键入homepage。将显示你可以从homepage调用的所有操作/方法)

2)因为导航方法(例如goToHomepage())返回后续页面(例如homepage)的实例,所以只需编写代码并查看代码的位置,就可以在测试中导航

例如

WelcomePage welcomePage = loginPage.loginWithValidUser(validUser);
PaymentsPage paymentsPage = welcomePage.goToPaymentsPage();

这些好处在Java中非常有效,因为IDE知道对象(本例中为页面)的类型

然而,对于JavaScript(动态类型语言),对象类型在任何时候都是不固定的,并且对于IDE来说常常是不明确的。因此,我看不出如何在使用JavaScript(例如,通过使用Cucumber)构建的自动化套件上实现这些好处

有人能告诉我如何使用JavaScript和页面对象模式来获得这些好处吗


共 (2) 个答案

  1. # 1 楼答案

    从上面Gerrit0的评论和进一步的调查来看,实现这一点的一个好方法似乎是使用TypeScript(这是JavaScript的静态类型版本):

    https://en.wikipedia.org/wiki/TypeScript

  2. # 2 楼答案

    如果你使用像IntelliJ IDEA这样的Jetbrains产品,它将为你完成代码和正确的导航。在javascript世界中,页面对象也是一种已知的模式。AngularJs也在自己的e2e测试框架(http://www.protractortest.org/#/page-objects)中提供了它。就我个人而言,我使用iLife来处理页面对象,IntelliJ则负责其他工作。如果它不适合您的需要,您仍然可以选择typescript并将其转换为javascript