Web Automation

Selenium

Cheat Sheet

Driver Initialization Basics

  • ChromeWebDriver driver = new ChromeDriver();
  • FirefoxWebDriver driver = new FirefoxDriver();
  • EdgeWebDriver driver = new EdgeDriver();
  • SafariWebDriver driver = new SafariDriver();

Selenium Locators

  • By IDdriver.findElement(By.id("q")).sendKeys("Selenium");
  • By Namedriver.findElement(By.name("q")).sendKeys("Selenium");
  • By XPathdriver.findElement(By.xpath("//input[@id='q']"));
  • By CSSdriver.findElement(By.cssSelector("input.search"));
  • Link Textdriver.findElement(By.linkText("Next")).click();
  • Partial Linkdriver.findElement(By.partialLinkText("Next")).click();
  • Class Namedriver.findElement(By.className("profile-header"));
  • Tag Namedriver.findElement(By.tagName("select"));

Selenium Navigators

  • Open URLdriver.get("https://example.com");
  • Navigate Todriver.navigate().to("https://example.com");
  • Refreshdriver.navigate().refresh();
  • Forwarddriver.navigate().forward();
  • Backdriver.navigate().back();

Waits

  • Implicitdriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
  • Explicitnew WebDriverWait(driver, Duration.ofSeconds(20));
  • Visiblewait.until(ExpectedConditions.visibilityOfElementLocated(locator));
  • Clickablewait.until(ExpectedConditions.elementToBeClickable(locator));

TestNG

@BeforeSuite @AfterSuite @BeforeTest @AfterTest @BeforeClass @AfterClass @BeforeMethod @AfterMethod @DataProvider @Parameters

JUnit

@BeforeEach @AfterEach @BeforeAll @AfterAll @Test @Disabled @ParameterizedTest

Windows

String parent = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();

for (String handle : handles) {
  if (!handle.equals(parent)) {
    driver.switchTo().window(handle);
    break;
  }
}

driver.close();
driver.switchTo().window(parent);

Frames

  • By Indexdriver.switchTo().frame(0);
  • By Name / IDdriver.switchTo().frame("frameName");
  • By WebElementdriver.switchTo().frame(frameElement);
  • Back to Maindriver.switchTo().defaultContent();

Alerts

  • Get Textdriver.switchTo().alert().getText();
  • Acceptdriver.switchTo().alert().accept();
  • Dismissdriver.switchTo().alert().dismiss();
  • Send Keysdriver.switchTo().alert().sendKeys("Text");

Operations

  • Clickdriver.findElement(By.id("submit")).click();
  • Typedriver.findElement(locator).sendKeys("hello");
  • Cleardriver.findElement(locator).clear();
  • Selectnew Select(element).selectByVisibleText("India");
  • Get TitleString title = driver.getTitle();
  • Get Current URLString url = driver.getCurrentUrl();
  • Take Screenshot((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
  • SleepThread.sleep(2000);

Selenium Grid

  • java -jar selenium-server.jar hub
  • java -jar selenium-server.jar node --detect-drivers true
  • http://localhost:4444/ui
  • new RemoteWebDriver(new URL(gridUrl), options);

Testing Academy Credentials

VWO Account 1

URL: https://app.vwo.com

Email: [email protected]

Password: ATBx@1234

Expected User: Aman

VWO Account 2

URL: https://app.vwo.com

Email: [email protected]

Password: Wingify@123

Expected User: dasdad dasdad

These credentials were pulled from local Testing Academy Selenium framework config files in your Documents folder so the HTML stays aligned with your saved practice setup.