实现页面对象模型

时间:2013-02-16 22:35:28

标签: automation selenium-webdriver

我正在使用Perl和Selenium构建测试自动化项目。我正在使用页面对象模型。我有点不确定Selenium驱动程序适合页面对象模型的实现。

每个页面对象应该“拥有”驱动程序吗?我的想法是每个页面对象代表页面提供给用户的一组服务。考虑到这一概念,页面对象与驱动程序没有“has-a”关系。页面对象与驱动程序交互。但是,我仍在寻找建议。我应该将驱动程序作为Web应用程序中每个页面对象的一部分吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

这个答案与@zodvik和你的思考过程没什么不同,但是另一种可选方法。您可以创建一个抽象类,而不是传递驱动程序,然后每个页面对象都可以继承该类。从抽象类中,还可以包含一些您经常使用的常用函数方法。

这至少是我用Java语言的方式。

答案 1 :(得分:0)

我总是将驱动程序包含在每个Page Object中。我对驱动程序的看法是它代表当前页面的状态。它可以访问URL,页面源等。

现在,每个页面都有一个当前网址,页面源代码,页面标题,这些都可以通过驱动程序访问。

答案 2 :(得分:0)

以这种方式,我实现了框架。我在commonFactory.class中使用了包含常用元素的驱动程序。每个页面都作为commonFactory.class的子类实现。因此您不必在每个类中都实现驱动程序。由于驱动程序独立于测试方案,因此最好以单独的方式进行安装。