现在,我有一个Selenium WebDriver框架,它看起来像这样(非常简化):
然后我要做个测试
然后一个测试看起来是:
app_func.upload_data('big.zip')
app_func.save_a_search('search terms', app_data.big_search_hits)
app_func.verify_search_hits因此,我得到了PageObjects模式的主要好处--比如,如果开发人员更改UI,就可以轻松地更新save_a_search。但这是一个比OO PageObjects更“平淡”的结构。我还不能把我的思想集中在这个模式上。
我有什么理由建立一个基于PageObjects的新结构吗?我要找的是,和我的方法相比有什么好处?
发布于 2012-06-22 00:05:44
有时使用Page对象模式很有意义,而有时却没有那么有意义。如果您有一个web应用程序,它基本上是一个动态页面,那么它就没有什么意义了,但是您仍然可以使用更像“节”对象的“页面”对象作为常见的部分,例如,如果您有一个左Nav,您可以为它创建一个页面对象,然后为一个日历部分或者页面上任何有意义的部分创建另一个页面对象。
从页面对象模式中获得的主要内容是
您还可以在Selenium之上构建一个抽象层,并让页面对象与其交互,以进一步保护自己不受更改的影响。
如果AUT (正在测试的应用程序)的元素和AUT的助手函数存在于app_func中,并且它是一个足够简单的结构,那么您似乎遇到了页面对象模式没有那么有用的情况。这取决于你来决定它是否足够复杂,可以分成几个部分。
发布于 2012-06-22 02:48:11
这取决于您的站点是如何构建的。如果您的站点的页面遵循一些常见的模式,如果这些模式是有状态的,那么将页面建模为对象可能是有用的。否则,这可能是不值得的麻烦。
https://sqa.stackexchange.com/questions/3330
复制相似问题