【发布时间】:2016-07-11 15:43:49
【问题描述】:
我在 C# 中有这段代码:
private static T GetPage<T>() where T : new()
{
var page = new T();
PageFactory.InitElements(Browser.Driver, page);
return page;
}
public static AboutPage About
{
get { return GetPage<AboutPage>(); }
}
我试图在 Java 中实现这一点,因为我真的很喜欢这个概念,但我不擅长泛型(尤其是 c#)。所以,这就是我的代码:
private static <T> T getPage(Class<? extends T> cls) throws Exception{
T page = cls.newInstance();
PageFactory.initElements(driver, page);
return page;
}
public static LoginPage Login() {
return LoginPage.getPage();
}
它根本不起作用。我觉得我缺少基础知识,所以我非常感谢任何帮助或建议。
【问题讨论】:
-
它根本不起作用不是一个有用的评论。请解释什么不起作用。
-
@JornVernee 在下面的代码中,我得到:例如“无法解析方法 getPage()”。 TBH,我什至不确定,我实现它甚至接近逻辑上正确的解决方案。
-
啊,我明白了。但是您没有显示
LoginPage.getPage()的实现。谁的签名与上述方法不兼容。 -
@JornVernee 但我认为上面的泛型方法 getPage() 是我要调用的方法。我只是不确定要传递什么作为参数。
-
@JornVernee 非常感谢,这似乎有效。
标签: java c# selenium generics selenium-webdriver