cheat sheet of all important Selenium syntax (Java + TestNG + Maven)
Here’s a complete cheat sheet of all important Selenium syntax (Java + TestNG + Maven) commonly asked in interviews:
🔹 1. WebDriver Setup
javaCopyEditWebDriver driver = new ChromeDriver(); // Chrome
WebDriver driver = new FirefoxDriver(); // Firefox
WebDriver driver = new EdgeDriver(); // Edge
driver.get("https://example.com"); // Navigate
🔹 2. WebElement Locators
javaCopyEditdriver.findElement(By.id("id"));
driver.findElement(By.name("name"));
driver.findElement(By.className("class"));
driver.findElement(By.tagName("input"));
driver.findElement(By.linkText("Click Here"));
driver.findElement(By.partialLinkText("Click"));
driver.findElement(By.xpath("//input[@type='text']"));
driver.findElement(By.cssSelector("input[type='text']"));
🔹 3. Send Keys & Click
javaCopyEditdriver.findElement(By.id("username")).sendKeys("admin");
driver.findElement(By.id("login")).click();
🔹 4. Dropdowns with Select
javaCopyEditSelect dropdown = new Select(driver.findElement(By.id("dropdown")));
dropdown.selectByVisibleText("Option 1");
dropdown.selectByIndex(2);
dropdown.selectByValue("value1");
🔹 5. Alerts
javaCopyEditAlert alert = driver.switchTo().alert();
alert.accept(); // OK
alert.dismiss(); // Cancel
alert.getText(); // Read alert message
alert.sendKeys("data");
🔹 6. Frames
javaCopyEditdriver.switchTo().frame(0); // by index
driver.switchTo().frame("frameName"); // by name
driver.switchTo().frame(driver.findElement(By.id("frameId"))); // by element
driver.switchTo().defaultContent(); // back to main page
🔹 7. Window Handling
javaCopyEditString mainWindow = driver.getWindowHandle();
Set<String> allWindows = driver.getWindowHandles();
for (String window : allWindows) {
if (!window.equals(mainWindow)) {
driver.switchTo().window(window);
}
}
🔹 8. Waits
➤ Implicit Wait
javaCopyEditdriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
➤ Explicit Wait
javaCopyEditWebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("username")));
➤ Fluent Wait
javaCopyEditWait<WebDriver> wait = new FluentWait<>(driver)
.withTimeout(Duration.ofSeconds(20))
.pollingEvery(Duration.ofSeconds(2))
.ignoring(NoSuchElementException.class);
🔹 Mouse & Keyboard Actions
javaCopyEditActions act = new Actions(driver);
act.moveToElement(element).perform(); // Hover
act.click().perform(); // Click
act.doubleClick(element).perform(); // Double-click
act.contextClick(element).perform(); // Right-click
act.dragAndDrop(source, target).perform(); // Drag & drop
act.sendKeys(Keys.ENTER).perform(); // Press ENTER
🔹 JavaScript Executor
javaCopyEditJavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollBy(0,500)");
js.executeScript("arguments[0].click();", element);
🔹 Screenshots
javaCopyEditFile src = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(src, new File("path/screenshot.png"));
🔹 Close Browser
javaCopyEditdriver.close(); // Close current tab
driver.quit(); // Close all tabs & end session
🔹 TestNG Annotations
javaCopyEdit@BeforeClass
public void setup() {}
@AfterClass
public void teardown() {}
@Test(priority=1, groups="sanity", enabled=true)
public void loginTest() {}
@DataProvider(name = "loginData")
public Object[][] data() {}
@Test(dataProvider = "loginData")
public void login(String user, String pass) {}
🔹 Assertions (TestNG)
javaCopyEditAssert.assertEquals(actual, expected);
Assert.assertTrue(condition);
Assert.assertFalse(condition);
Assert.assertNotEquals(a, b);
🔹 Maven Commands
bashCopyEditmvn clean # Deletes /target
mvn compile # Compiles Java code
mvn test # Runs TestNG tests
mvn package # Packages to JAR/WAR
mvn install # Installs to local repo
🔹 POM.xml Example (Selenium + TestNG)
xmlCopyEdit<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.21.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>
🔹 Run Selenium Test via TestNG XML
xmlCopyEdit<suite name="AllTests">
<test name="LoginTests">
<classes>
<class name="tests.LoginTest"/>
</classes>
</test>
</suite>
Run using:
bashCopyEditmvn clean test -Dsurefire.suiteXmlFiles=testng.xml