in module/geb-core/src/main/groovy/geb/content/PageContentTemplate.groovy [61:93]
private create(Object[] args) {
def createAction = {
def factoryReturn = invokeFactory(*args)
def creation = wrapFactoryReturn(factoryReturn, *args)
if (creation instanceof TemplateDerivedPageContent) {
if (params.required) {
creation.require()
}
creation.ensureWithinBounds(params.min, params.max)
} else if (params.required && creation == null) {
throw new RequiredPageValueNotPresent(this, *args)
}
creation
}
def wait = config.getWaitForParam(params.wait)
if (wait) {
try {
if (params.waitCondition) {
wait.waitFor(effectiveWaitCondition(params.waitCondition, createAction))
} else {
wait.waitFor(createAction)
}
} catch (WaitTimeoutException e) {
if (params.required) {
throw e
}
e.lastEvaluationValue
}
} else {
createAction()
}
}