Navigation Commands

Additional Browser Commands in Selenium WebDriver

Beyond the basic commands, Selenium WebDriver provides several additional browser commands that significantly enhance automation capabilities. These commands enable precise control over navigation history, page refresh, window management, and JavaScript alerts — essential for real-world test scenarios.

These advanced browser commands are critical for simulating realistic user behavior and handling dynamic web elements effectively.

Key Additional Browser Commands:

  • navigate().to()
  • navigate().back()
  • navigate().forward()
  • navigate().refresh()
  • switchTo().alert()

1. navigate().to() – Alternative to get()

Similar to get() but provides access to the full Navigation interface.

driver.navigate().to("https://example.com");
    

Explanation: Returns a Navigation object that allows chaining of navigation commands. Preferred when multiple navigation actions are performed sequentially.


2. navigate().back() – Go Back in History

Syntax: navigate().back(): void

driver.navigate().back();  // Equivalent to clicking browser back button
    

Explanation: Navigates to the previous page in browser history. Useful for testing flows involving multiple pages.


3. navigate().forward() – Go Forward in History

Syntax: navigate().forward(): void

driver.navigate().forward();  // Moves forward in history
    

Explanation: Moves to the next page in history after a back() operation has been performed.


4. navigate().refresh() – Refresh Current Page

Syntax: navigate().refresh(): void

driver.navigate().refresh();  // Reloads the current page
    

Explanation: Forces a complete page reload — ideal for testing dynamic content or session recovery scenarios.


5. switchTo().alert() – Handle JavaScript Alerts

Syntax: switchTo().alert(): Alert

Alert alert = driver.switchTo().alert();

// Common alert operations
alert.accept();        // Click OK
alert.dismiss();       // Click Cancel
String text = alert.getText();  // Read alert message
alert.sendKeys("input"); // For prompt alerts
    

Explanation: Transfers control from the main page to a JavaScript alert, prompt, or confirmation dialog. Essential for handling pop-ups during automation.


Practical Example – Complete Navigation Flow

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class NavigationDemo {
    public static void main(String[] args) throws InterruptedException {
        
        WebDriver driver = new ChromeDriver();
        
        driver.navigate().to("https://example.com");
        Thread.sleep(2000);
        
        driver.navigate().to("https://google.com");
        Thread.sleep(2000);
        
        driver.navigate().back();      // Back to example.com
        Thread.sleep(2000);
        
        driver.navigate().forward();   // Forward to google.com
        Thread.sleep(2000);
        
        driver.navigate().refresh();   // Refresh current page
        
        driver.quit();
    }
}
    

Key Differences: get() vs navigate().to()

Feature get() navigate().to()
Waits for page load Yes Yes
Access to back/forward No Yes
Recommended for Simple navigation Complex navigation flows

Conclusion

These additional browser commands provide fine-grained control over browser behavior, making your automation scripts more realistic and robust. While get() is sufficient for basic navigation, mastering the navigate() interface and switchTo().alert() is essential for professional test automation.

🤖
PrepCampusPlus AI Tutor
Scroll to Top