为什么不为Selenium webdriver使用全局变量?

时间:2016-03-29 23:24:10

标签: ruby selenium global-variables

由于我是面向对象编程的新手,这似乎是一个陈腐的问题。

我正在尝试编写一个基本的最终用户测试框架,它有一个带有大部分方法代码的Pageobject类。

我有一个测试脚本,它在顶层实例化selenium驱动程序,然后我有许多Page对象方法调用“do stuff”。

如果我在顶层实例化驱动程序,那么我需要将驱动程序对象传递给任何需要它的方法,这很好但是我想最小化传递给方法调用的参数数量以减少可读性

例如。 home_page.login(this_user)比home_page.login(this_user,selenium_driver)读得更好。

我知道全局变量是不受欢迎的,所以所有方法都可以访问不同范围内的对象。

1 个答案:

答案 0 :(得分:1)

我通过初始化所有Page对象的PageRepo类访问测试中的所有Page对象。

我在我的测试类继承的基类中初始化PageRepo类。这也是我初始化WebDriver的地方。

所以我的测试看起来像这样。

PageRepo.HomePage()。DoSomething的()