Issue with WebUI.waitForElementVisible()

Hi

Is anyone having issues with using:

WebUI.waitForElementVisible(findTestObject('Page_Login/btn_Login'), 10)

The issue i am having is with false positives, ie, when a failure has occurred such as ‘Unable to find element’, the test step is still passing. I expect the test to fail, but rather worryingly passes.

I have added an assertion so to test the return value of:

WebUI.waitForElementVisible(findTestObject('Page_Login/btn_Login'), 10)

which fails tests as id expect, but it seems odd that the method isnt failing tests by default. Is this potentially a bug or am i missing something?

Thanks.

Looking at the relevant part of the waitForElementVisible() keyword:

} catch (WebElementNotFoundException e) {
     logger.logWarning(e.getMessage())
     return false
} catch (TimeoutException e) {
     logger.logWarning(MessageFormat.format(StringConstants.KW_MSG_OBJ_IS_NOT_VISIBLE_AFTER_X_SEC, [to.getObjectId(), timeOut] as Object[]))
     return false
}

… by default, in the event that the element is NOT present/visible, the method logs a warning, and returns false. This is expected, as the waitForElement__() family of methods is not generally meant to be an assertion that passes/fails, but to help with timing. You can, however, ask it to fail the test case by passing an extra FailureHandling argument:

WebUI.waitForElementVisible(findTestObject('Page_Login/btn_Login'), 10, FailureHandling.STOP_ON_FAILURE)

2 Likes

Thanks @Brandon_Hein

I have tried this but no luck, im using:

CucumberKW.runFeatureFile('Include/features/New Feature File.feature', FailureHandling.STOP_ON_FAILURE)

Is this a Cucumber specific issue?

Probably. It looks like you are using a non-native keyword (from a plugin, maybe?). You would need to check the usage of that particular method, but I highly doubt it accepts a FailureHandling argument.