Skip to main content
Nodriver provides flexible methods for navigating web pages, managing URLs, and controlling browser history.

Basic navigation

Opening pages

Use the get() method to navigate to a URL:
From browser.py:241-283:

Opening new tabs

Opening new windows

When you use new_window=True, it automatically implies new_tab=True.

Managing tabs

Getting current tabs

Iterating over tabs

Closing tabs

From the demo.py example:

Browser history

From tab.py:778-788:

Reload page

Getting page information

Current URL

Always await tab after navigation to ensure the URL property is up-to-date.

Page source

Get the current HTML content:
From tab.py:1047-1056:

Extract all URLs

Waiting strategies

Simple wait

Wait for element

Both select() and find() have built-in waiting:

Wait for specific element

Use wait_for() for explicit waiting:
From tab.py:1265-1311:

Awaiting the tab

Calling await tab is important for synchronization:
The await tab pattern updates the target URL and allows the script to “breathe”, which helps prevent race conditions.

Window management

Activate tab

Bring a tab to the foreground:

Window size and position

Window states

Tile windows

Arrange multiple windows in a grid:
From demo.py:

Scrolling

Scroll down and up

From tab.py:1170-1220:

Real-world example

Here’s a complete navigation workflow:

Browser contexts (proxy support)

Create isolated browser contexts with separate proxies:
Browser contexts are experimental. Each context creates a separate browsing session with its own cookies, storage, and proxy settings.

Best practices