首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winapp驱动程序的页面对象实现

Winapp驱动程序的页面对象实现
EN

Stack Exchange QA用户
提问于 2020-06-29 17:57:47
回答 1查看 692关注 0票数 1

我使用Winapp驱动程序来使用java控制windows桌面应用程序。自动化运行良好,但我正在寻找一种实现Page对象模型的方法。这是我目前正在使用的。

  • 阿普
  • 维纳普
  • 司机
  • 硒TestNG

我不能使用selenium的标准Page对象,因为我不能让它与Winapp驱动程序一起工作,它会在Null指针异常下崩溃。有没有人有一个如何实现这一点的例子。

EN

回答 1

Stack Exchange QA用户

发布于 2020-06-30 07:27:33

Page对象只是用于创建用于UI操作的API的设计模式。

您所要做的就是为页面对象提供一种获取低级别UI操作工具(如Selenium )的方法。例如,通过一个辛格尔顿

代码语言:javascript
复制
class MyTests {

   @Test
   fun test1 {
      val page = FactoryOfPageObjects.newPage("login");
      val homePage = page.login("user", "1234");
      assertTrue(homePage.amILogged());
   }
}

class LogiPage {

   val driver = // You can inject any implementation of Driver here

   fun login(username, password) {
      driver.find("#usernameField").insert(username);
      driver.find("#passwordField").insert(password);
      driver.find("#loginButton").click;
      return new LoggedPage(driver);
   }
}

interface Driver {
   void insert(text);
   void click();
}

class SeleniumDriver implements Driver {...}
class AppiumDriver implements Driver {...}

看看上面您的测试和页面对象是如何不知道在运行时使用哪个驱动程序的低级实现的。这意味着,如果您已经有了一个没有页面对象的工作实现,您可以简单地重构它以隔离对驱动程序派生程序的所有引用。

有关它的更多细节,请参见马丁·福威尔()职位

(今后的编辑注意:如果您提供没有页面对象的工作实现,社区可以帮助您重构它,以便将低级别的细节与测试和页面对象隔离开来)。

票数 1
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/45096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档