我经常使用Selenium Webdriver,并且我编写了很多“实用”方法来使其更易于使用。我将这些类放在一个WebDriverUtil
类中,现在该文件的长度超过 1,200 行。每种方法都WebDriverUtil
试图将我与使用区分开来,WebDriver
因为这是我经常使用的东西,不会干枯继续写作。
例如,这是我要放入的方法WebDriverUtil
。
public void waitUntilVisible(final WebElement webElement) {
new WebDriverWait(webDriver, 10).until(new Predicate<WebDriver>() {
@Override
public boolean apply(WebDriver webDriver) {
return webElement.isDisplayed();
}
});
}
如果我有 1,200 行充满这样的方法的代码,我有上帝对象吗?如果是这样,我该如何解决?
我应该把我的行为分成这样的装饰器类吗?
public class WebElementDecorator implements WebElement {
private WebElement webElement;
private final WebDriver webDriver;
public WebElementDecorator(WebElement webElement, WebDriver webDriver) {
this.webElement = webElement;
this.webDriver = webDriver;
}
public void waitUntilVisible() {
new WebDriverWait(webDriver, 10).until(new Predicate<WebDriver>() {
@Override
public boolean apply(WebDriver webDriver) {
return webElement.isDisplayed();
}
});
}
public void click() {
webElement.click();
}
//... other WebElement methods
}