Search code examples
testingautomationspockgeb

Geb: how to register unexpexted pages


I registered a page as unexpected like below in GebConfig.groovy:

unexpectedPages = [EmptySearchResultPage]

and the page class is like below:

import geb.Page

class EmptySearchResultPage extends Page{
    static at = {
//      errorTitle.displayed
         $("h1",text:contains('Sorry… We Found No XXX.')) 
        }
    static content = {
        errorTitle(wait:true,required:false) { $("h1",text:contains('Sorry… We Found No XXX.')) }
    }
}

But I am getting following exception:

geb.error.InvalidGebConfiguration: Unexpected pages configuration has to be a collection of classes that extend geb.Page but found "[[:]]". Did you forget to include some imports in your config file?
    at geb.Configuration.getUnexpectedPages(Configuration.groovy:189)
    at geb.Browser.doCheckIfAtAnUnexpectedPage(Browser.groovy:416)
    at geb.Browser.checkIfAtAnUnexpectedPage(Browser.groovy:402)
    at geb.Page.verifyAt(Page.groovy:181)
    at geb.Browser.doAt(Browser.groovy:454)
    at geb.Browser.at(Browser.groovy:353)
    at geb.Browser.to(Browser.groovy:568)
    at geb.Browser.to(Browser.groovy:556)
    at geb.Browser.to(Browser.groovy:523)
    at geb.spock.GebSpec.methodMissing(GebSpec.groovy:56)
    at com.skygate.global.HomePageTest.Open Homepage(HomePageTest.groovy:59)

What is the mistake I made? Please help. Thank you.


Solution

  • The error message says it:

    Did you forget to include some imports in your config file?
    

    So, assuming your page is not in the default package (the JVM does not like that!), you need to import it into GebConfig.