我正在做一些 WebDriver+PageObject 的东西。
(如果您不熟悉 PageObjects,这是一种模式,您有一个代表站点上每个页面的类,该类使用域语言公开页面的所有功能,从而隐藏测试中的 HTML 内容。)
我想偷懒,并在我的抽象 Page 类中拥有一个“提交”方法,所有其他页面都从该方法扩展。我还希望此方法新建下一个 Page 子类并返回它。
这是我在 Page 类中的内容:
def submitExpecting[P <: Page[P]](implicit m: Manifest[_]): P = {
driver.findElement(By.xpath("//input[@type='submit']")).click
m.erasure.getConstructor(classOf[WebDriver]).newInstance(driver).asInstanceOf[P]
}
我是这样称呼它的:
val userHomePage = userSignupPage
.login("graham")
.acceptTermsAndConditions
.submitExpecting[UserHomePage]
编译这个,我得到:
error: could not find implicit value for parameter m: Manifest[_]
.submitExpecting[UserHomePage]
我以为我很聪明,但显然我并不聪明。 ;)
我究竟做错了什么?
你需要让你的Manifest
与类型参数相关,即
def submitExpecting[P <: Page[P]](implicit m: Manifest[P]): P
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)