forward()

Introduction

The forward() method is one of the navigation commands in Selenium WebDriver. It is used to navigate to the next page in the browser’s history, just like clicking the Forward button in a web browser.

Whenever a user navigates back to a previous page using the browser’s Back button, the browser keeps track of the next page in its history. The forward() method allows Selenium to move forward to that page without entering the URL again.

The forward() method is widely used in automation testing to verify browser history functionality, page navigation workflows, and user behavior involving the browser’s Back and Forward buttons.

In this tutorial, you will learn what the forward() method is, why it is used, its syntax, practical examples, real-world applications, common mistakes, best practices, and frequently asked interview questions.


What is forward()?

The forward() method is a Selenium WebDriver navigation command that moves the browser to the next page in the browser’s history.

It performs the same action as clicking the Forward button in a web browser.

Unlike the get() method, which opens a specified URL, the forward() method depends on the browser’s navigation history.


Why Do We Use forward()?

The forward() method is commonly used to:

  • Navigate to the next page in browser history.

  • Test browser Forward button functionality.

  • Verify navigation workflows.

  • Simulate real user browsing behavior.

  • Validate browser history management.

  • Test multi-page web applications.


Syntax

driver.forward()

The forward() method does not accept any parameters.


Practical Example

The following example demonstrates how to use the forward() method.

The automation script opens the Selenium practice website, navigates to the login page, moves back to the home page, then uses the forward() method to return to the login page and verifies that the browser has successfully navigated forward.

from selenium import webdriver


# Topic: 6. Navigation Commands - forward()
# Practice site: https://the-internet.herokuapp.com/
#
# forward() moves the browser to the next page in the session history.


def test_navigate_forward():
    driver = webdriver.Chrome()

    try:
        driver.get("https://the-internet.herokuapp.com/")
        driver.get("https://the-internet.herokuapp.com/login")

        driver.back()
        driver.forward()

        assert driver.current_url.endswith("/login")

    finally:
        driver.quit()

Output

Browser launched successfully.

Home page opened successfully.

Login page opened successfully.

Browser navigated back to the Home page.

Browser navigated forward to the Login page.

Current URL:
https://the-internet.herokuapp.com/login

Assertion Passed.

Test Executed Successfully.

Understanding the Code

Import WebDriver

from selenium import webdriver

Imports the Selenium WebDriver module required to automate the browser.


Launch Chrome Browser

driver = webdriver.Chrome()

Creates a new Chrome browser session.


Open the Home Page

driver.get("https://the-internet.herokuapp.com/")

Opens the Selenium practice website.


Navigate to the Login Page

driver.get("https://the-internet.herokuapp.com/login")

Navigates to the login page.


Navigate Back

driver.back()

Returns to the previously visited page (Home page).


Navigate Forward

driver.forward()

Moves the browser to the next page in the browser history.

This behaves exactly like clicking the browser’s Forward button.


Verify the Current URL

assert driver.current_url.endswith("/login")

Checks whether the browser has successfully returned to the login page.

Using endswith("/login") makes the validation flexible and independent of the domain name.


Close the Browser

driver.quit()

Closes the browser and ends the WebDriver session.


Browser Execution Flow

Launch Browser
        │
        ▼
Open Home Page
        │
        ▼
Open Login Page
        │
        ▼
Navigate Back
        │
        ▼
Return to Home Page
        │
        ▼
Execute forward()
        │
        ▼
Return to Login Page
        │
        ▼
Verify Current URL
        │
        ▼
Assertion Passes
        │
        ▼
Close Browser

Automation Testing Example

Suppose you’re testing an e-commerce website.

A customer:

  • Opens the Home page.

  • Navigates to a Product page.

  • Clicks the browser’s Back button.

  • Then clicks the Forward button.

The automation script can verify that the browser correctly returns to the Product page.

driver.forward()

assert "product" in driver.current_url

This confirms that the browser’s forward navigation works correctly.


Real-World Example

Consider an online banking application.

A customer:

  • Opens the Dashboard.

  • Navigates to the Transaction History page.

  • Clicks the browser’s Back button.

  • Then clicks the Forward button.

The automation script can verify that the customer is returned to the Transaction History page.

driver.forward()

assert "transactions" in driver.current_url

This ensures that browser navigation behaves as expected.


Common Mistakes Beginners Make

Calling forward() Without Browser History

Incorrect

driver.get("https://the-internet.herokuapp.com/")

driver.forward()

If there is no forward history available, the browser cannot navigate forward.


Forgetting to Call back() First

Many beginners expect forward() to work immediately after opening a page.

Incorrect

driver.get("https://the-internet.herokuapp.com/login")

driver.forward()

There is no forward history because the browser has not navigated backward.


Correct

driver.back()
driver.forward()

Verifying the URL Too Quickly

Incorrect

driver.forward()

assert driver.current_url.endswith("/login")

On slow websites, the next page may still be loading.

Use explicit waits whenever necessary before validating the page.


Best Practices

  • Use forward() only after navigating backward.

  • Verify navigation using current_url or title.

  • Use explicit waits for pages that load dynamically.

  • Combine navigation commands with assertions for reliable automation.

  • Create test cases that simulate real user browsing behavior.


Conclusion

The forward() method is an essential Selenium navigation command used to move the browser to the next page in the browser’s history.

It behaves exactly like clicking the browser’s Forward button and is widely used to test browser history functionality and user navigation workflows.

Understanding how to use the forward() method helps automation engineers build more realistic and reliable Selenium test scripts.


Frequently Asked Questions (FAQs)

What does the forward() method do?

It navigates the browser to the next page in the browser history.


Does forward() require any parameters?

No.

The syntax is:

driver.forward()

Is forward() the same as clicking the browser’s Forward button?

Yes.

It performs exactly the same action.


Can forward() be used without calling back() first?

No.

The browser must have forward history available; otherwise, nothing happens.


How can I verify that forward() worked?

You can validate the navigation using:

  • driver.current_url

  • driver.title

  • Page elements


Key Takeaways

  • The forward() method navigates to the next page in the browser history.

  • The syntax is driver.forward().

  • It performs the same action as clicking the browser’s Forward button.

  • It does not accept any parameters.

  • It works only when forward history exists.

  • Use current_url or title to verify successful navigation.

  • The forward() method is an important Selenium interview topic and a commonly used browser navigation command.