Selenium WebDriver

Selenium Roadmap & Comprehensive Review

Complete roadmap covering all Selenium concepts including browser operations, locators, web elements, Actions class, alerts, frames, and dropdowns.

Selenium Complete Roadmap

✨ Comprehensive Selenium Guide

This roadmap covers all essential Selenium concepts from basic browser operations to advanced automation techniques. Master these concepts to become proficient in web automation testing.

🚀 Browser Operations

Basic Operations

ChromeDriver driver = new ChromeDriver();
driver.get("url");
driver.manage().window().maximize();

Information Capture

String title = driver.getTitle();
String url = driver.getCurrentUrl();

Window Management

driver.switchTo().newWindow(WindowType.TAB);
driver.switchTo().newWindow(WindowType.WINDOW);

Navigation & Cleanup

driver.navigate().to("url");
driver.close(); // Current window
driver.quit(); // All browsers

🔍 Selenium Locators

Basic Locators

ID
driver.findElement(By.id("idValue"));
Name
driver.findElement(By.name("nameValue"));
Class
driver.findElement(By.className("classValue"));
Tag
driver.findElement(By.tagName("tagName"));

Advanced Locators

Link Text
driver.findElement(By.linkText("linkText"));
Partial Link
driver.findElement(By.partialLinkText("partial"));
CSS Selector
driver.findElement(By.cssSelector("css"));
XPath
driver.findElement(By.xpath("xpath"));

🎯 CSS Selector Techniques

Basic CSS Selectors

ID: #idValue
Class: .classValue
Tag: tagName
Combined: tagName#idValue

Attribute Selectors

Exact: input[attribute='value']
Starts with: input[attribute^='start']
Ends with: input[attribute$='end']
Contains: input[attribute*='contains']

XPath Methods

Single Attribute: //tag[@att='value']
Multiple Attributes: //tag[@att='value' and @att2='value2']
Text: //tag[text()='value']
Contains: //tag[contains(@att,'value')]

XPath Axes

Child: /child::tagName
Descendant: /descendant::tagName
Following: /following-sibling::tagName
Preceding: /preceding-sibling::tagName

⚙️ Web Element Operations

Text Box Operations

• isDisplayed() → boolean
• isEnabled() → boolean
• sendKeys() → void
• clear() → void
• getAttribute() → String

Button/Link Operations

• isDisplayed() → boolean
• isEnabled() → boolean
• click() → void
• getText() → String
• getAttribute() → String

Radio/Checkbox Operations

• isDisplayed() → boolean
• isEnabled() → boolean
• isSelected() → boolean
• click() → void

🖱️ Actions Class

Mouse Events

• click() - Single click
• doubleClick() - Double click
• contextClick() - Right click
• moveToElement() - Mouse hover
• dragAndDrop() - Drag and drop
• scrollToElement() - Scroll

Keyboard Events

• keyDown(Keys.CONTROL)
• keyUp(Keys.CONTROL)
• sendKeys("text")

Action Chain

• build() - Combine actions
• perform() - Execute actions

Knowledge Check

Knowledge Check

Question 1 of 5

Which method is used to switch focus from frame window to top window?

Key Points Summary

🎯 Locator Strategy

  • • Prefer ID and Name locators for stability
  • • Use CSS selectors for better performance
  • • XPath for complex element relationships
  • • Avoid absolute XPath paths

⚡ Actions Best Practices

  • • Always call perform() after build()
  • • Use explicit waits before actions
  • • Handle stale element exceptions
  • • Chain multiple actions efficiently

🔄 Frame Handling

  • • Always switch to frame before interaction
  • • Use defaultContent() to return to main
  • • Handle nested frames carefully
  • • Check frame existence before switching

🚨 Alert Management

  • • Handle different alert types appropriately
  • • Use explicit waits for alert presence
  • • Capture alert text before dismissing
  • • Handle authentication popups via URL

SDET Mastery

Master Test Automation

Home
CurriculumPracticeQ&ACheatsheet
🍵Buy me a Chai

Automation Testing Course

Comprehensive course covering Manual Testing, Java Programming, and Selenium WebDriver

🍵Buy me a Chai
Privacy Policy•GitHub
© 2024 Automation Testing Course. All rights reserved.