2013-02-16 97 views
0

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

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

谢谢!

回答

0

我总是将驱动程序作为每个页面对象的一部分。我认为驱动程序的方式是它代表当前页面的状态。它允许访问URL,页面源等。

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

+0

感谢您的输入,nrbaf​​na。这就是我最终选择的方法!你说的对 !我意识到与页面进行交互的唯一方法是通过驱动程序,并且我将驱动程序传递给它,以便它不像每个页面都创建一个新的驱动程序。 – 2013-02-27 22:40:15

1

这个答案与@zodvik和你的思维过程没有太大区别,但是是另一种可选的方法。除了传递驱动程序外,您还可以创建一个每个页面对象都可以从中继承的抽象类。从抽象类中,还可以包含一些常见的功能方法,您会发现自己经常使用这些方法。

这至少是我在Java语言中做的。

0

我认为驱动程序不是页面对象的一部分,对我来说,驱动程序是访问页面对象的方法,所以它在逻辑上与页面无关。 我们只在页面类中包含驱动程序对象,所以我们可以将驱动程序对象传递给类,这就是为什么我们在页面类外部初始化驱动程序。 例如: WebDriver driver = new FirefoxDriver(); LoginPage login = new LoginPage(driver); .....

相关问题