WebDriver/Selenium 2 Node.js client for browser automation and testing
—
Navigation commands for browsing web pages, managing browser history, and retrieving page information.
Navigate to URLs, refresh pages, and control browser history.
/**
* Navigate to a specific URL
* @param url - Target URL to navigate to
* @param cb - Callback receiving (err)
*/
get(url: string, cb?: callback): void;
/**
* Refresh the current page
* @param cb - Callback receiving (err)
*/
refresh(cb?: callback): void;
/**
* Navigate back in browser history
* @param cb - Callback receiving (err)
*/
back(cb?: callback): void;
/**
* Navigate forward in browser history
* @param cb - Callback receiving (err)
*/
forward(cb?: callback): void;Usage Examples:
// Navigate to different pages
browser.get('https://example.com', function(err) {
if (err) throw err;
console.log('Navigated to example.com');
});
// Use browser history
browser.back(function(err) {
if (err) throw err;
browser.forward(); // Go forward again
});
// Promise chain style
browser
.get('https://example.com')
.get('https://example.com/login')
.back() // Return to homepage
.refresh(); // Reload the pageRetrieve information about the current page.
/**
* Get current page URL
* @param cb - Callback receiving (err, url)
*/
url(cb?: callback): string;
/**
* Get current page title
* @param cb - Callback receiving (err, title)
*/
title(cb?: callback): string;
/**
* Get page source HTML
* @param cb - Callback receiving (err, source)
*/
source(cb?: callback): string;Usage Examples:
// Get page information
browser.title(function(err, title) {
console.log('Page title:', title);
});
browser.url(function(err, currentUrl) {
console.log('Current URL:', currentUrl);
});
browser.source(function(err, html) {
console.log('Page source length:', html.length);
});
// Promise chain style
browser
.get('https://example.com')
.title()
.then(title => {
console.log('Title:', title);
return browser.url();
})
.then(url => {
console.log('URL:', url);
});Capture screenshots of the current page or specific elements.
/**
* Take a screenshot of the current page
* @param cb - Callback receiving (err, base64Image)
*/
takeScreenshot(cb?: callback): string;
/**
* Save screenshot to file
* @param filename - Path to save the screenshot
* @param cb - Callback receiving (err)
*/
saveScreenshot(filename: string, cb?: callback): void;Usage Examples:
// Take screenshot and get base64 data
browser.takeScreenshot(function(err, base64Image) {
if (err) throw err;
console.log('Screenshot captured, size:', base64Image.length);
// Save to file (you would need to decode base64)
const fs = require('fs');
fs.writeFileSync('screenshot.png', base64Image, 'base64');
});
// Save screenshot directly to file
browser.saveScreenshot('test-results/screenshot.png', function(err) {
if (err) throw err;
console.log('Screenshot saved');
});
// Promise chain style
browser
.get('https://example.com')
.saveScreenshot('./screenshots/homepage.png')
.then(() => console.log('Screenshot saved'));Handle JavaScript alerts, confirms, and prompts.
/**
* Get text from current alert dialog
* @param cb - Callback receiving (err, text)
*/
alertText(cb?: callback): string;
/**
* Send keys to alert prompt dialog
* @param keys - Text to send to the prompt
* @param cb - Callback receiving (err)
*/
alertKeys(keys: string, cb?: callback): void;
/**
* Accept alert dialog (click OK)
* @param cb - Callback receiving (err)
*/
acceptAlert(cb?: callback): void;
/**
* Dismiss alert dialog (click Cancel)
* @param cb - Callback receiving (err)
*/
dismissAlert(cb?: callback): void;Usage Examples:
// Handle a confirmation dialog
browser.alertText(function(err, text) {
console.log('Alert text:', text);
if (text.includes('Are you sure?')) {
browser.acceptAlert(); // Click OK
} else {
browser.dismissAlert(); // Click Cancel
}
});
// Handle a prompt dialog
browser.alertKeys('My input text', function(err) {
browser.acceptAlert(); // Submit the prompt
});
// Promise chain style
browser
.elementById('delete-button')
.click()
.alertText()
.then(text => {
console.log('Confirmation:', text);
return browser.acceptAlert();
});Manage browser cookies for session handling and testing.
/**
* Get all cookies for current domain
* @param cb - Callback receiving (err, cookies)
*/
allCookies(cb?: callback): Cookie[];
/**
* Set a cookie
* @param cookie - Cookie object to set
* @param cb - Callback receiving (err)
*/
setCookie(cookie: Cookie, cb?: callback): void;
/**
* Delete all cookies
* @param cb - Callback receiving (err)
*/
deleteAllCookies(cb?: callback): void;
/**
* Delete a specific cookie by name
* @param name - Cookie name to delete
* @param cb - Callback receiving (err)
*/
deleteCookie(name: string, cb?: callback): void;
interface Cookie {
name: string;
value: string;
domain?: string;
path?: string;
secure?: boolean;
httpOnly?: boolean;
expiry?: number;
}Usage Examples:
// Set a cookie
browser.setCookie({
name: 'session_id',
value: 'abc123',
domain: 'example.com',
path: '/',
secure: true
}, function(err) {
if (err) throw err;
console.log('Cookie set');
});
// Get all cookies
browser.allCookies(function(err, cookies) {
cookies.forEach(cookie => {
console.log(`${cookie.name}=${cookie.value}`);
});
});
// Delete specific cookie
browser.deleteCookie('session_id');
// Clear all cookies
browser.deleteAllCookies();Access browser local storage for web application testing.
/**
* Set a local storage key-value pair
* @param key - Storage key
* @param value - Storage value
* @param cb - Callback receiving (err)
*/
setLocalStorageKey(key: string, value: string, cb?: callback): void;
/**
* Get value from local storage
* @param key - Storage key to retrieve
* @param cb - Callback receiving (err, value)
*/
getLocalStorageKey(key: string, cb?: callback): string;
/**
* Remove a key from local storage
* @param key - Storage key to remove
* @param cb - Callback receiving (err)
*/
removeLocalStorageKey(key: string, cb?: callback): void;
/**
* Clear all local storage
* @param cb - Callback receiving (err)
*/
clearLocalStorage(cb?: callback): void;Usage Examples:
// Set local storage data
browser.setLocalStorageKey('user_preferences', JSON.stringify({
theme: 'dark',
language: 'en'
}));
// Get local storage data
browser.getLocalStorageKey('user_preferences', function(err, value) {
const prefs = JSON.parse(value);
console.log('User theme:', prefs.theme);
});
// Clear storage
browser.clearLocalStorage();Install with Tessl CLI
npx tessl i tessl/npm-wd