【发布时间】:2017-01-18 17:32:40
【问题描述】:
我正在使用页面对象模型。在我的网站上,大多数页面都有一个菜单,所以我想我应该创建一个 MenuPage 类,让所有其他有菜单的页面都会扩展它。
但现在我想从菜单中重新组合我的所有 WebElement,以便将它们与当前页面分开。
换句话说,如果一个元素直接在页面上,我会以类似的方式访问它。
MyPage mypage = new MyPage(); /*MyPage extends MenuPage*/
mypage.myWebElement.click();
但如果 web 元素是菜单的一部分,而不是 MyPage 的一部分,我想从
MyPage mypage = new MyPage(); /*MyPage extends MenuPage*/
mypage.menu.myWebElement.click();
我知道我可以创建一个类菜单并将其实例化到 MenuPage 中,但由于它只会在那里使用,我不希望将它与类 MenuPage 分开。而且,菜单也有子菜单,所以我想用多级字段来表示它。并且为每个子菜单设置一个新课程可以用这么少的资源完成大量课程。
最好的方法是什么,或者您知道解决问题的其他方法吗?
【问题讨论】:
-
我认为您看到了一些关于组合优于继承的论点,以及使用继承变得多么复杂。我不确定我是否完全理解子菜单的情况,但如果你能澄清一下,可能有几种不同的方法可以在那里使用。
标签: java selenium selenium-webdriver pageobjects