这两天看到一些文章在说Page Object模式以及Page Factory用于分离页面元素定位和业务逻辑,其根本原因在于由于页面元素信息可能会有变动,导致在定位该元素的时候需要做相应的更改,而用了这种设计模式后,只需要在相应的PO类里进行更改就可以了,这样可以大幅度减少冗余代码,但是该类是以页面为一个class,可是这种模式真的好吗?针对实际的UI经验提出了以下几点,并会后续给出了目前在用的方式:
1. 页面元素个数众多,种类众多的情况下
2. 同一个元素存在不同的页面,其id,name信息相同
3. 页面较多的情况
4. 页面及页面元素用户可以自定义的情况下,现在很多的产品都有一个base的,用户可以在此基础上进行二次开发,添加自己想要的页面及页面元素,如图:
那针对上述四种方式,PO如果以页面来划分类,就显得比较笨重,同样会加大代码的维护