Search code examples
cucumberserenity-bddcucumber-serenity

Serenity Cucumber4 Environment URL on Page Objects not working


Why does this not work?

When I run the feature file as "Run as Cucumber Feature" I get an error

java.lang.AssertionError: Undefined default URL for page object PageObject

Page Object

@DefaultUrl("page:register.page")
public class AccountCreationPage extends PageObject {
   ...
}

Config File (serenity.config)

environments {
  local {
    webdriver.base.url = "https://localhost"
  }
  demo {
    webdriver.base.url = "https://demo.example.com"
  }
  prod {
    webdriver.base.url = "https://example.com"
  }
  all {
    home.page = "#{webdriver.base.url}"
    register.page = "#{webdriver.base.url}/register"
  }
}

https://johnfergusonsmart.com/environment-specific-configuration-in-serenity-bdd/ shows the use of @DefaultUrl("page:register.page")

Serenity-Cucumber4. Java. Eclipse.


Solution

  • the config file is required to have default as an entry 🤦

    environments {
      default {
        webdriver.base.url = "https://localhost"
      }
      ...
      all {
        home.page = "#{webdriver.base.url}"
        register.page = "#{webdriver.base.url}/register"
      }
    }