Cheatsheets
Selenium Commands Cheatsheet
Browser actions, element interactions, dropdowns, alerts, frames, windows, screenshots, and JavaScript executor.
1. Browser Actions
Navigate, resize, and control the browser
| Action | Selenium Java | Playwright |
|---|---|---|
| Open URL | driver.get("https://www.testerrank.com/banking") | page.goto("https://www.testerrank.com/banking") |
| Navigate to URL | driver.navigate().to("https://www.testerrank.com/shopping") | page.goto("https://www.testerrank.com/shopping") |
| Go back | driver.navigate().back() | page.goBack() |
| Go forward | driver.navigate().forward() | page.goForward() |
| Refresh page | driver.navigate().refresh() | page.reload() |
| Maximize window | driver.manage().window().maximize() | // Set in browser context config |
| Set window size | driver.manage().window().setSize(new Dimension(1920, 1080)) | // Set viewport in browser.newContext() |
| Get page title | driver.getTitle() | page.title() |
| Get current URL | driver.getCurrentUrl() | page.url() |
| Close current tab | driver.close() | page.close() |
| Quit browser | driver.quit() | browser.close() |
2. Element Actions
Click, type, read, and check element state
| Action | Selenium Java | Playwright |
|---|---|---|
| Click element | driver.findElement(By.id("loginBtn")).click() | page.locator("#loginBtn").click() |
| Type text | driver.findElement(By.id("userId")).sendKeys("testuser") | page.locator("#userId").fill("testuser") |
| Clear field | driver.findElement(By.id("userId")).clear() | page.locator("#userId").clear() |
| Get text | driver.findElement(By.id("welcomeUser")).getText() | page.locator("#welcomeUser").textContent() |
| Get attribute | driver.findElement(By.id("userId")).getAttribute("placeholder") | page.locator("#userId").getAttribute("placeholder") |
| Is displayed? | driver.findElement(By.id("errorMsg")).isDisplayed() | page.locator("#errorMsg").isVisible() |
| Is enabled? | driver.findElement(By.id("submitBtn")).isEnabled() | page.locator("#submitBtn").isEnabled() |
| Is selected? | driver.findElement(By.id("rememberMe")).isSelected() | page.locator("#rememberMe").isChecked() |
| Submit form | driver.findElement(By.id("loginForm")).submit() | // Use click on submit button instead |
| Press Enter key | driver.findElement(By.id("search")).sendKeys(Keys.ENTER) | page.locator("#search").press("Enter") |
3. Dropdowns (Select Class)
Works with HTML <select> elements only
| Action | Selenium Java | Playwright |
|---|---|---|
| Select by visible text | new Select(driver.findElement(By.id("accountType"))).selectByVisibleText("Savings") | page.locator("#accountType").selectOption({ label: "Savings" }) |
| Select by value | new Select(driver.findElement(By.id("accountType"))).selectByValue("savings") | page.locator("#accountType").selectOption("savings") |
| Select by index | new Select(driver.findElement(By.id("accountType"))).selectByIndex(1) | // Use selectOption with value or label |
| Get selected option | new Select(driver.findElement(By.id("accountType"))).getFirstSelectedOption().getText() | page.locator("#accountType option:checked").textContent() |
| Get all options | new Select(driver.findElement(By.id("accountType"))).getOptions() | page.locator("#accountType option").allTextContents() |
4. Alerts & Dialogs
Handle JavaScript alerts, confirms, and prompts
| Action | Selenium Java | Playwright |
|---|---|---|
| Accept alert (OK) | driver.switchTo().alert().accept() | page.on("dialog", d => d.accept()) |
| Dismiss alert (Cancel) | driver.switchTo().alert().dismiss() | page.on("dialog", d => d.dismiss()) |
| Get alert text | driver.switchTo().alert().getText() | page.on("dialog", d => console.log(d.message())) |
| Type in prompt | driver.switchTo().alert().sendKeys("my input") | page.on("dialog", d => d.accept("my input")) |
5. Frames & iFrames
Switch context to and from frames
| Action | Selenium Java | Playwright |
|---|---|---|
| Switch by index | driver.switchTo().frame(0) | page.frameLocator("iframe").first() |
| Switch by name/ID | driver.switchTo().frame("frameName") | page.frameLocator("#frameName") |
| Switch by element | driver.switchTo().frame(driver.findElement(By.tagName("iframe"))) | page.frameLocator("iframe") |
| Back to main page | driver.switchTo().defaultContent() | // Playwright auto-scopes via frameLocator |
| Back to parent frame | driver.switchTo().parentFrame() | // Not needed — use parent page locator |
6. Windows & Tabs
Handle multiple browser windows or tabs
| Action | Selenium Java | Playwright |
|---|---|---|
| Get current window handle | String mainWindow = driver.getWindowHandle() | // Playwright uses page objects directly |
| Get all window handles | Set<String> handles = driver.getWindowHandles() | context.pages() |
| Switch to new window | driver.switchTo().window(handle) | const newPage = await context.waitForEvent("page") |
| Open new tab | driver.switchTo().newWindow(WindowType.TAB) | const newPage = await context.newPage() |
| Close & switch back | driver.close(); driver.switchTo().window(mainWindow) | newPage.close() |
7. Screenshots
Capture page or element screenshots
| Action | Selenium Java | Playwright |
|---|---|---|
| Full page screenshot | File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(src, new File("screenshot.png")) | page.screenshot({ path: "screenshot.png", fullPage: true }) |
| Element screenshot | driver.findElement(By.id("dashboard")).getScreenshotAs(OutputType.FILE) | page.locator("#dashboard").screenshot({ path: "element.png" }) |
| Screenshot as bytes | byte[] bytes = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES) | const buffer = await page.screenshot() |
8. JavaScript Executor
Execute JavaScript in the browser context
| Action | Selenium Java | Playwright |
|---|---|---|
| Scroll to element | ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true)", element) | page.locator("#element").scrollIntoViewIfNeeded() |
| Click via JS | ((JavascriptExecutor) driver).executeScript("arguments[0].click()", element) | page.locator("#element").click({ force: true }) |
| Get page title via JS | ((JavascriptExecutor) driver).executeScript("return document.title") | page.evaluate(() => document.title) |
| Scroll to bottom | ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)") | page.evaluate(() => window.scrollTo(0, document.body.scrollHeight)) |
| Highlight element | ((JavascriptExecutor) driver).executeScript("arguments[0].style.border='3px solid red'", element) | page.locator("#el").evaluate(e => e.style.border = "3px solid red") |