Navigation commands in Selenium Java allow automation scripts to control browser navigation, including loading URLs, moving through browser history, and refreshing pages. Selenium provides these navigation methods via the driver.navigate()
interface:
Command | Description | Syntax Example |
---|---|---|
to(String url) | Loads a new web page in the current browser window, similar to the browser address bar. | driver.navigate().to("https://example.com"); |
back() | Moves back one page in the browser’s history, simulating the back button. | driver.navigate().back(); |
forward() | Moves forward one page in the browser’s history, simulating the forward button. | driver.navigate().forward(); |
refresh() | Reloads the current web page, similar to pressing F5 or the browser refresh button. | driver.navigate().refresh(); |
Detailed descriptions
- to(String url): Navigates to the specified URL. It takes a string parameter (the URL). Effectively, it loads the provided web address in the active browser window.
- back(): Moves back to the previously visited page in the session’s history. Useful after navigating forward or clicking links to return to the previous state.
- forward(): Moves forward to the next page in the session’s history if there is one, simulating the user clicking the forward button in the browser.
- refresh(): Reloads or refreshes the current web page. This is equivalent to the browser’s refresh functionality (often F5).
All these commands are void methods—they do not return a value and do not take parameters (except to()
, which takes a URL string).
Syntax
driver.navigate().to("https://www.example.com"); // Open URL
driver.navigate().back(); // Go back in history
driver.navigate().forward(); // Go forward in history
driver.navigate().refresh(); // Refresh current page
These commands are essential for automating user-like navigation flows or for testing scenarios that depend on navigating between different states of a web application.
Complete Code
Below is the complete runnable Java code that demonstrates all the navigation commands in Selenium Java using Chrome browser:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class NavigationCommandsExample { public static void main(String[] args) { // (Optional) Set the path to ChromeDriver if it's not in system PATH // System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); // Step 1: Initialize Chrome browser WebDriver driver = new ChromeDriver(); // Step 2: Navigate to first URL driver.navigate().to("https://www.google.com"); System.out.println("Opened Google"); // Pause for observation (optional) try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } // Step 3: Navigate to second URL driver.navigate().to("https://www.bing.com"); System.out.println("Opened Bing"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } // Step 4: Go back to Google driver.navigate().back(); System.out.println("Navigated Back to Google"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } // Step 5: Go forward to Bing again driver.navigate().forward(); System.out.println("Navigated Forward to Bing"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } // Step 6: Refresh the current page (Bing) driver.navigate().refresh(); System.out.println("Refreshed Bing"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } // Step 7: Close the browser driver.quit(); System.out.println("Browser Closed"); } }