Если быть точным, анонимный класс создается только один раз (во время компиляции) и загружается только один раз.
Это будет экземпляр каждый раз, когда вы вызываете метод, но эти издержкидовольно маленький.
Если вы делаете это много, то вы можете легко создать (неанонимный) класс:
public class ElementPresenceWait extends Wait {
private final String locator;
public ElementPresenceWait(final String locator) {
this.locator=locator;
}
@Override public boolean until(){
selenium.isElementPresent(locator);
}
public void wait(long timeoutInMilliseconds) {
wait("Cannot found locator " + locator, timeoutInMilliseconds);
}
}
Тогда вы можете сделать более простой
new ElementPresenceWait("foo").wait(1000);