java - 对于页面对象类中的方法,使用 public void 还是 public [页面名称] 更好?

标签 java selenium selenium-webdriver

我正在遵循页面对象模型。假设我有一个扩展 BasePage 的 NewPage 类,并且在该类中我有如下方法:

public NewPage clickRed(){
    driver.findElement(element1).click();
    return this;
}

public NewPage clickBlue(){
    driver.findElement(element2).click();
    return this;
}

public OtherPage goToNextPage(){
    this.clickRed();
    this.clickBlue();
    super.clickNextButton();
    return new OtherPage(driver);
}

}

这样可以吗,或者对于 clickRed() 和 clickBlue() 方法,将这些方法设置为 public void 是更好的做法吗?就像这样:

public void clickRed(){
    driver.findElement(element1).click();
}

最佳答案

这取决于您想要实现的目标。

我喜欢流畅的风格。因此,登录页面对象中的每个方法都会返回“this”。

loginPage.enteringUsername("uname")
         .enteringPassword("pwd")
         .submit();

如果您不喜欢这样,可以将它们保留为“无效”

<小时/>

但是为什么每次在页面对象中都使用 driver.findElement 查找元素?

检查这个设计。 http://www.testautomationguru.com/arquillian-graphene-page-fragments/

关于java - 对于页面对象类中的方法,使用 public void 还是 public [页面名称] 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158823/

相关文章:

java - 在现有项目结构上设置gradle

python-2.7 - Selenium Python XPATH具有行和列的表如何从col1中选择名称为col2和col5的复选框

selenium - 动态在 FindsBy 中与 selenium 一起使用

java - 如何使用 xstream 将 xml 字符串附加到现有的 xml 文件

java - 两次按钮点击之间的时间

java - Tomcat 中的同步和异步请求处理有何不同?

haskell - 任何可用于 Selenium2/WebDriver 的纯函数式语言绑定(bind)?

c# - 如何通过 JavaScript 回调在 C# 中运行 QUnit 测试并返回测试结果?

python - Selenium - 通过文本查找 xpath (td/tr)

java - Selenium 日期选择器问题