Behat Using the Browser History

Profile picture for user devraj

The Mink session gives you access to the browser history, you can perform refresh, back and forward action on browser. Consider you have following scenario for autopract.com website

  @browser
  Scenario: verify browser
    When I click on shop now on banner
    Then I should see "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
    And I refresh the page
    When I press browser back button
    Then I should see "TOP COLLECTION"
    When I press browser forward button
    Then I should see "Lorem Ipsum is simply dummy text of the printing and typesetting industry."

Here we are click on shop now button, then visiting some page and asserting text, after that we are performing refresh operation. Soon after we are clicking on back button and on homepage asserting TOP COLLECTION and after performing forward operation on browser we are asserting same text again.

Here are the corresponding step definitions:

/**
  * @When /^I click on shop now on banner$/
  */
public function iClickOnShopNowOnBanner()
{
    $this->getSession()->getPage()->find('xpath', "(//div[@class='slider-contain']//a)[3]")->click();
}

/**
  * @Given /^I refresh the page$/
  */
public function iRefreshThePage()
{
    $this->getSession()->reload();
}

/**
  * @When /^I press browser back button$/
  */
public function iPressBrowserBackButton()
{
    $this->getSession()->back();
}

/**
  * @When /^I press browser forward button$/
  */
public function iPressBrowserForwardButton()
{
    $this->getSession()->forward();
}

In last 3 step definition you can see we are performing refresh, back and forward action on browser.

Tags