Skip to main content

Command Palette

Search for a command to run...

cheat sheet of all important Selenium syntax (Java + TestNG + Maven)

Published
•2 min read•View as Markdown

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

More from this blog

Shreenibas Samal's blog

49 posts