在页面对象模式中返回新页面对象有什么好处?

时间:2012-08-29 02:35:45

标签: java testing webdriver pageobjects

例如,如果我要测试Google搜索,页面对象模型返回新的Google搜索页面对象有什么好处?

E.g。

public class SearchPage {
    private final WebDriver driver;

    public SearchPage(WebDriver driver) {
        this.driver = driver;
    }

    public SearchPage search(String query) {
        WebElement e = driver.findElement(By.name("q")).sendKeys(query);
        e.submit();

        return new SearchPage(driver);
    }
}

VS

public class SearchPage {
    private final WebDriver driver;

    public SearchPage(WebDriver driver) {
        this.driver = driver;
    }

    public void search(String query) {
        WebElement e = driver.findElement(By.name("q")).sendKeys(query);
        e.submit();
    }
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我想到的一件事是从SearchPage类中链接方法。当你想让一些负责运行测试的更高级别的类时,你可以使用这样的:

String actualText = searchPage.search("q").openFirstResult().selectItemFromCombo().checkName().getNameText() 

等。等

这使得阅读代码变得非常简单,看起来几乎就像一个句子,对于其他人来说这是可以理解的。