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 (26)
    • Denise Defoor: I have a Quicken SE Version 6 .. My computer crashed a few weeks ago and I finally got it up and running. Now Quicken is telling me I must registered it. What? I have had this program for 20 years. How can I disable the...
    • Greg: For me, holding the *LEFT* CTL + Shift then clicking Online, One Step Update worked. I originally tried holding the right CTL + Shift, and it didn’t work. I’m using Quicken 2006, so I don’t know if it will work...
    • Joe SR>: My monthly income is deposited into my Credit Union account. I use debit whenever possible. I write checks manually and mail them. I use Quicken 2012 off-line only. I have entered all my money and investment accounts. I...
    • Prtet: Never say never….every time I swear I will never use Quicken again, I discover that there are still no viable alternatives. Amazing that there is no decent personal finance software.
    • Joe D.: Holding CTRL + Shift keys and selecting On Line | One Step Update from the main menu worked for my Quicken 2004. I’m grateful that you wrote a synopsis (“Simply put, …”) just beneath the link to the blog...
    • Susan Long: I bought my quicken disc in the beginning and it came with a registration number. I rang the helpline and they gave me the code to put in and talked me through it. It you downloaded your version then you don’t own it...
    • Peter: You might consider running your old version of Quicken on an ancient computer. This is what I have done for years. The newer versions are fraught with problems- criminal, in my opinion. One version made mathmatical errors when...
  • Parsing Strings in Katalon – Split, Substring and Readlines (4)
    • Anjana: Hey thanks for the response It is quite strange but initializing variable for delimiter and it worked String splitFormat = ‘-‘ WebUI.println(var_CampaignDura tion.toString().split(splitFor mat)[0])...
    • Don Pedro: I’m not really sure what the difference is, but I don’t think the “-“ in the split is the same as the one in the date. String var_CampaignDuration = “05/13/2019-06/07/2019&# 8221; String[] parsedDateRange =...
    • Anjana: Hi, I tried the same thing to split the string, but does not work for me, Could you plz point out whats wrong Variable var_CampaignDuration has value “05/13/2019-06/07/2019&# 8221; String[] parsedDateRange =...
    • Ellen: Thanks for sharing!! I like your contributions to Katalon topics.
  • How to Block games by Title and Tag on Steam (2)
    • Marcus861: I made an acc just to say: Same bro
    • JACK: Thanks, same just wanted to block anime games in my discover
  • Create a new and random UUID for an API call (1)
    • Anonymous: Hi ! I found this blog few weeks ago and it’s really helping me out with my tests! Thanks a lot for the Katalon tips and tricks ! Keep up the good work 🙂
  • Working with Dates and Date Formatting in Katalon Studio (6)
    • Ajoo: Thank you for the details. How do i remove leading “0” from dates. i.e. while formatting i receive 04/21/2019, but i need 4/21/2019. (same applies for date)