【发布时间】:2017-12-20 10:51:06
【问题描述】:
在 Java Selenium 中,为什么我需要在方法中实例化构造函数?
public class Navigation extends BasePage {
public Navigation(WebDriver driver) {
super(driver);
}
public Navigation visitUsSite() {
driver.navigate().to("https://www.randomwebsite.com"));
return new Navigation(driver);
}
}
上面不是和下面一样有效吗:
public class Navigation extends BasePage {
public Navigation(WebDriver driver) {
super(driver);
}
public void visitUsSite() {
driver.navigate().to("https://www.randomwebsite.com");
}
}
【问题讨论】:
-
你为什么不试试呢?
-
一个返回
Navigation,另一个什么也不返回。如果你不使用返回值,对你可能没有区别,但它们绝对不一样。顺便说一句,您不返回构造函数,也不实例化构造函数。您使用(调用/调用)构造函数来实例化一个对象。不是构造函数,而是方法返回的对象实例。 -
我都执行了,它们都有效。我只是很好奇为什么网上这么多教程建议在方法中返回构造函数?
-
@Samranator 这是一个基于页面对象概念的良好编码实践。当您通过单击按钮或链接离开当前页面时,您希望将新页面的页面对象返回给调用方法。在您的情况下,您返回的是同一页面,所以看起来有点矫枉过正。
标签: java selenium pageobjects