Checking for Page Load with a Custom Keyword

While looking through my code, I decided to set up a single validation test that would check to make sure the page I wanted to work with loaded correctly. Instead of repeatedly using 10-15 lines to do it a few different ways, it seemed the better choice would be to create a Custom Keyword and use one line of code to call it each time.

To that end, I set up this simple, but rather effective Custom Keyword that looks for header text on the page I’m trying to get to. I set up the test to accept my chosen text as a parameter so I can pass it anything.

For each page I go to, there is some sort of header text that identifies the page. It may say Profile or Customer or Sales, but there is something I can use for validation.

I created the following Custom Keyword that simply looks for the header text I pass to it. For example, when the page is loaded, look for the text My Profile on it. If it’s there, the page loaded and the text will execute as expected.

If that text doesn’t appear, meaning some sort of problem has occurred, I get the title of the page, log an error and stop execution. Again, it’s a pretty simple test, but it’s proving quite effective.

@Keyword

def checkPageLoad(String findText) {
/* Confirm the correct page has loaded by looking for the requested text
* The search text is passed to the Keyword from the calling statement
* If the text is missing, determine the kind of error and display more meaningful text
*/
def elementVisible = WebUI.verifyTextPresent(findText, false, FailureHandling.OPTIONAL)
if (elementVisible == false) {
//Get the title of the page and determine the kind of error
def title = WebUI.getWindowTitle()
log.logError('ERROR: The requested page did not load with the following error:= ' + title )
if (title=='There was an error'){
log.logError('ERROR: There is a Data Inconsistency Error')
} else {
log.logError('ERROR: The page could not be found - 404 error')
}
log.logWarning('--- The test ended unexpectedly with errors ---')
KeywordUtil.markFailedAndStop('ERROR: Unable to load the requested page - Test has failed')
}
}

To quickly explain the test:

It uses the WebUI.verifyTextPresent to find the text I passed.

If that text does not appear, it gets the WindowTitle which has an error message.

Based on the page title, one of two error conditions has occurred.

An error notice is written to the log file and the test is marked as Failed.

To call the Keyword and pass it the text I’m expected, I use this:

CustomKeywords.'errorCheck.validateSalesDashboard.checkPageLoad'('My Profile')

If the words, “My Profile” appear on the page, the test runs as normal. If they are missing, the error messages are logged and the test is halted. This gives me a way to make sure each page I interact with loads correctly and that the test is working with the correct page.

This Keyword is now called dozens of times from within my Test Cases. Additionally, I can change this in one source file rather going to each to make a modification. I have saved time and shaved off a few hundred lines worth of code.

Other articles of interest:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments
  • How To Disable the Quicken Registration Prompt (18)
    • Susan Long: I have Quicken personal 2012 which I only use to enter and retrieve data. It suits my needs perfect. Now they have blocked my access and want me to re register. I don’t want to upgrade as it I am comfortable with this...
    • Stewart: I have been using Quicken 200 basic since it was introduced but I now have a new PC using windows 10 and can’t get rid of the registration prompt. I have tried the above control/shift trick but to no avail. Any ideas
    • Dave: Works for Quicken 2007 too. Thanks, Gina!
    • Charlie Fellenbaum: Yay, thanks, and that worked for Quicken 2006 as well.
    • Ken: This didn’t work for me. I have 2006. I installed on a new laptop. I must have registered before, don’t remember. I tried to register this time, but got an error message. I’d rather not registered, though. I use...
    • Neil Murphy: I discovered that early on. I’m using 2001.
  • Conditional Statements – IF .. ELSE IF in Katalon Studio (1)
    • Allyson: I used this : elementVisible=WebUI.verifyEle mentPresent… but it failed because “FAILED because (of) Unable to verify object ‘Object Repository/Homepage/b_vaolopho c’ is present (Root cause:...
  • Quasi Performance/Load Testing with Katalon Studio (1)
    • Anthony: I have done this with 100 plus machines at the same time and it worked well and provided some useful feedback.
  • A Try Catch example in Katalon Studio (3)
    • Venkatesh: Hi Don Pedro Can you share me sample project ….which consist of basic to advanced stuff…If your github or gitlab url aso present please share… As I am beginer to this I need to learn lot
    • Don Pedro: Hi Lucas. Thank you for the kind comments. I would be happy to help. Let me know how I could be of assistance.
    • Lucas: Thanks for sharing a lot of Katalon tips and tricks. The Katalon team highly appreciate your support and feedback. To make Katalon Studio better and be the best free automation solution for testing community, we wish to coordinate...
  • Securely storing passwords and login details with Set Encrypted Text in Katalon Studio (1)
    • Agus: Hi Don, Is there a way to set the encrypted text to be used in the ‘WebUI.authenticate̵ 7; method? Basically I am trying to encrypt the password that is passed to the ‘WebUI.authenticate̵ 7; method. Thank you.
  • Katalon Studio – Manual View – The start of a test script (2)
    • ben: Hello Don Great Website. Keep up the work. I learnt a lot. cheers Ben.
  • Another success with Katalon Studio (1)
    • Mahesh Joshi: Hi Don, I just started following your blog in regards to katalon. I want to introduce katalon studio at my work we do manual testing at work at the moment. What approach I should use for proof of concept with katalon for...
  • What went wrong with Crime City? (34)
    • G D: One thing I have noticed is the awkwardness of items and the attack points and how you can earn them. I was pretty pathetic with attack points and then I played that limited time boss and got weapons that had attack points in the...