Top 80+ Selenium Interview Questions and Answers [2025 Edition]

October 7, 2025

I still remember bombing a QA automation interview back in college. I’d built projects with Selenium, sure, but when the interviewer asked, “How would you handle dynamic XPath in a flaky test suite?” I froze. My brain said, “Uhh... Google it?” Not exactly the winning answer.

If you’ve ever been in the same spot, grinding LeetCode, skimming tutorials, and praying the interviewer won’t ask about Selenium Grid or tricky synchronization, you’re not alone. Selenium is one of those tools interviewers love to push on. They want proof that you can handle locators, waits, browser quirks, and write test scripts that go beyond the basic login flow.

This guide pulls together the Selenium coding interview questions that actually come up. We’ll cover browser automation basics, advanced WebDriver commands, the Page Object Model, TestNG setups, CI/CD pipelines, and more. I leaned on InterviewCoder’s AI Interview Assistant during prep; it gave me live answers, debugging help, and explanations I could use on the spot, so I never froze again.

So, which part of Selenium prep stresses you out the most? Let’s fix that.

34 Essential Selenium Interview Questions and Answers (Beginner-Level)

Blog image

Selenium shows up in nearly every QA automation interview. I've been grilled on it more times than I can count, and I’ve also sat on the other side, asking these same questions. Knowing how it works is one thing. Explaining it clearly and confidently under pressure? That takes practice.

Here’s my go-to breakdown of the most common beginner-level Selenium interview questions, written with practical examples, real-world context, and hard-earned clarity.

1. What is Selenium?

Selenium is an open-source tool for automating web browsers. It lets you write scripts that mimic user actions, clicks, form fills, navigation, across browsers and operating systems.

What to mention:

  • Works with Java, Python, C#, JavaScript, and more
  • Supports ChromeDriver, GeckoDriver, etc.
  • Includes IDE, WebDriver, and Grid (RC is outdated)

2. What are the components of the Selenium suite?

  • Selenium IDE: Simple recorder for test prototypes
  • Selenium WebDriver: Core API for coded tests
  • Selenium Grid: Runs tests in parallel across environments
  • Selenium RC: Deprecated, don’t use it

3. Why is Selenium so popular for automation?

  • Free and open-source
  • Supports multiple languages
  • Works on all major browsers and OSes
  • Integrates with TestNG, JUnit, Jenkins, and Grid

4. What is test automation?

Test automation = writing scripts that run checks without human effort.

Connect it to:

  • Faster feedback cycles
  • Consistent regression testing
  • Higher coverage in Agile/CI workflows

5. What are the benefits of automation testing?

  • Saves time on repetitive tests
  • Catches bugs earlier
  • Reduces human error
  • Runs across browsers/versions

6. What is Selenese?

The language used in Selenium IDE.

  • Actions: click, type, select
  • Accessors: storeText, storeTitle
  • Assertions: assertText, verifyElementPresent

7. Selenium 2 vs Selenium 3?

  • Selenium 2 introduced WebDriver
  • Selenium 3 removed RC entirely, and WebDriver became the standard

8. What types of testing does Selenium support?

  • Functional testing
  • Regression testing
  • End-to-end UI flows

Not suited for API or desktop/mobile apps.

9. What are the common TestNG annotations?

  • @BeforeSuite, @AfterSuite
  • @BeforeTest, @AfterTest
  • @BeforeClass, @AfterClass
  • @BeforeMethod, @AfterMethod

10. How do you locate web elements?

  • By.id, By.name, By.className, By.tagName
  • By.cssSelector → fast and reliable
  • By.xpath → powerful but verbose
  • By.linkText, By.partialLinkText

Tip: Prefer IDs and CSS first. Use XPath when the DOM is complex.

11. What are the different types of waits?

  • Implicit Wait: Sets a global timeout
  • Explicit Wait: Waits for a condition (e.g., element visible)
  • Fluent Wait: Custom polling, timeouts, ignored exceptions

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("myId")));

12. Navigation commands?

  • navigate().to(url)
  • navigate().back()
  • navigate().forward()
  • navigate().refresh()

13. driver.close() vs driver.quit()

  • close(): Closes the current window
  • quit(): Ends the entire session

14. Manual vs Automated Testing

  • Manual: Exploratory, UI/UX checks
  • Automation: Regression, smoke tests, CI/CD flows

15. Absolute vs Relative XPath

  • Absolute: /html/body/div[2]/div[1]/a → brittle
  • Relative: //div[@class='card'][3]//button → stable, preferred

16. What are Selenium’s limitations?

  • Doesn’t test desktop or mobile apps (use Appium)
  • No built-in reporting
  • CAPTCHA handling is out of scope
  • Async UI = tricky timing

17. What is the Same-Origin Policy?

A browser rule blocking cross-origin access (scheme + host + port).

In tests, handle with CORS headers, local browser flags, or stubs.

18. Why does Selenium dominate the market?

  • Open-source
  • Works across OS, browser, and language
  • Integrates with CI/CD tools
  • Large community support

19. Why use Selenium for web testing?

  • Cost-effective
  • Easy integration into pipelines
  • Runs parallel with Grid
  • Works with most frameworks

20. What is an exception test?

In TestNG:

@Test(expectedExceptions = ArithmeticException.class)

public void testDivideByZero() {

int result = 1 / 0;

}

21. Wait for full page load

new WebDriverWait(driver, Duration.ofSeconds(10))

.until(driver -> ((JavascriptExecutor) driver)

.executeScript("return document.readyState").equals("complete"));

Avoid Thread.sleep().

22. What is WebDriver?

The modern API that controls browsers directly using native automation. Replaced RC.

23. Is WebDriver a library?

It’s an API. It sends commands to drivers (ChromeDriver, GeckoDriver) that control the browser.

24. What browsers does Selenium support?

  • Chrome → ChromeDriver
  • Firefox → GeckoDriver
  • Safari → safaridriver
  • Edge → EdgeDriver
  • Cloud platforms: Sauce Labs, BrowserStack

25. What’s new in Selenium 4?

  • Full W3C WebDriver support
  • Relative locators (above(), below())
  • Better Grid UI
  • DevTools Protocol support

26. What does driver.get() do?

Loads a page and waits until document.readyState == complete.

27. Alternative to get()?

navigate().to(url) → Similar to get(), better when simulating back/forward flows.

28. Can Selenium test APIs?

No. Use Postman, REST-assured, or HTTP clients. Selenium is for browser UI automation.

29. How to locate elements?

  • By.id, By.name, By.className
  • By.tagName, By.linkText, By.partialLinkText
  • By.cssSelector, By.xpath

30. XPath for nth-child

(//ul[@id='menu']/li)[3]

Selects the 3rd <li> under #menu.

31. Challenges with Selenium WebDriver?

  • Dynamic content
  • Flaky selectors
  • Poor error messages from drivers
  • Handling multi-tabs, alerts, frames

32. TestNG Annotations

  • @BeforeClass, @AfterClass
  • @BeforeMethod, @AfterMethod
  • @Test
  • @BeforeSuite when setting up DB/driver

33. Locator Examples

driver.findElement(By.id("email")).sendKeys("[email protected]");

driver.findElement(By.cssSelector("button.submit")).click();

34. Typing Text in Selenium

WebElement input = driver.findElement(By.id("search"));

input.clear();

input.sendKeys("Selenium tips");

input.submit();

If you can walk into your interview and explain these clearly, not just list them, you’re set.

Related Reading

34 Intermediate-Level Selenium Interview Questions and Answers

Blog image

Here’s where things get interesting. Once you’ve got the basics, interviewers love to dig into real-world experience, the stuff that goes beyond locators and into actual problem-solving. These are 34 intermediate-level Selenium questions I’ve seen (and answered) in interviews, written with the kind of context that proves you’ve been in the trenches.

1. How do you click a hyperlink with full vs. partial text?

driver.findElement(By.linkText("Today's deals")).click();

driver.findElement(By.partialLinkText("Service")).click();

Partial text helps when link content changes, but if the full text is stable, use it.

2. How do you scroll with JavaScript?

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("window.scrollBy(0,1000)");

WebElement el = driver.findElement(By.id("someId"));

js.executeScript("arguments[0].scrollIntoView(true);", el);

I reach for JS when Actions won’t cut it, or the scroll has to be precise.

3. How do you assert a page’s title?

String actualTitle = driver.getTitle();

Assert.assertEquals(actualTitle, "Expected Title");

Use equalsIgnoreCase() if casing isn’t strict.

4. How do you simulate a mouse hover?

Actions actions = new Actions(driver);

actions.moveToElement(driver.findElement(By.id("searchBox"))).perform();

5. How do you read CSS values?

String fontSize = driver.findElement(By.id("email")).getCssValue("font-size");

Colors usually come back as rgba, normalize if you’re comparing.

6. What is the Page Object Model, and why use it?

Each page = one class with locators + actions:

loginPage.enterUsername("user");

loginPage.submit();

Keeps test code clean and locators in one spot. Page Factory cuts boilerplate further.

7. Can Selenium automate CAPTCHA?

No, and it shouldn’t. Ask devs for test flags to bypass.

8. How do you handle native OS dialogs?

AutoIt, Robot class, or push for HTML file inputs.

9. How do you take a screenshot?

File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

FileUtils.copyFile(scrFile, new File("screenshot.png"));

I hook this into onTestFailure() for reports.

10. Why use Selenium over QTP or commercial tools?

  • Free
  • Multi-language
  • CI/CD friendly
  • Works with modern apps

11. Data-driven vs. keyword-driven frameworks?

  • Data-driven: Same logic, different inputs (CSV, DataProvider)
  • Keyword-driven: Keywords map to actions; non-coders can build tests
  • Hybrid: Mix both

12. getWindowHandle vs. getWindowHandles?

for (String win : driver.getWindowHandles()) {

driver.switchTo().window(win);

}

13. Maven’s role in Selenium projects?

Dependency management, builds (mvn test), Jenkins integration.

14. What’s an object repository?

A central place for element locators. Makes updates painless.

15. What is a WebElement in Selenium?

Interface for interacting with elements:

WebElement input = driver.findElement(By.name("email"));

input.clear();

input.sendKeys("[email protected]");

16. How do you safely enter text?

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

WebElement input = wait.until(ExpectedConditions.elementToBeClickable(By.name("email")));

input.clear();

input.sendKeys("[email protected]");

17. Implicit vs. Explicit waits?

  • Implicit: Global timeout for findElement()
  • Explicit: Condition-based, more control

18. driver.close() vs. driver.quit()?

  • close() = current tab
  • quit() = entire session

19. How do you delete cookies?

driver.manage().deleteAllCookies();

20. Why do cross-browser testing?

Because browsers behave differently, Grid, BrowserStack, or Sauce Labs fix that.

21. Challenges with parallel tests?

Data clashes, flaky timing, heavy resource use. Fix with test isolation and Grid on CI.

22. How do you run Selenium in Jenkins?

Add JDK + Maven → pull from Git → mvn test → publish TestNG reports.

23. What does PageFactory do?

@FindBy(id = "username")

WebElement username;

PageFactory.initElements(driver, this);

24. Why use TestNG?

  • Organize with groups/priorities
  • DataProviders
  • Parallel runs
  • Better reports than JUnit

25. How do you sync tests with app behavior?

Use explicit waits + ExpectedConditions. Avoid Thread.sleep().

26. Benefits of Selenium Grid?

Parallel tests, cross-browser coverage, CI speedups.

27. Role of assertions?

Assert.assertTrue(el.isDisplayed());

Assert.assertEquals(driver.getTitle(), "Expected");

28. How do you handle form controls?

new Select(driver.findElement(By.id("dropdown"))).selectByVisibleText("Option");

Check and click the checkboxes only if not selected.

29. How do you upload a file?

driver.findElement(By.id("upload")).sendKeys("/path/to/file.txt");

30. Tips for making tests browser-agnostic?

Use WebDriverManager, parametrize browsers, and avoid brittle locators.

31. How do you debug flaky tests?

Reproduce, log, screenshot, trace DOM changes, tweak waits. Sometimes pair with devs.

32. Real performance win?

I once dropped runtime 70% by removing redundant loads, replacing sleeps with waits, using headless mode, and running Grid.

33. How do you handle dynamic content?

Explicit waits, retry loops, scroll if needed, and flexible locators.

34. Tough Selenium bug you fixed?

A dynamic table rebuilt itself after every filter. I fixed it by waiting for stalenessOf(oldRow), using better XPath, scrollIntoView, and adding logs. Tests stabilized.

These go past “what is Selenium.” They test if you’ve actually built and debugged real suites. Get fluent with them, and you won’t just answer, you’ll stand out.

Top 15 Advanced-Level Selenium Interview Questions and Answers

Blog image

These are the questions that separate surface-level knowledge from hands-on experience. If you’ve been in the trenches with Selenium, you’ll recognize them. If not, this list will prep you for the curveballs.

1. Is there a way to type in a textbox without using sendKeys()?

Yes. When sendKeys() doesn’t register (element hidden, offscreen, or frontend not responding), I use JavaScriptExecutor:

WebElement email = driver.findElement(By.id("email"));

((JavascriptExecutor) driver).executeScript(

"arguments[0].value = '[email protected]'; arguments[0].dispatchEvent(new Event('input'));",

email

);

This injects the value directly. Just note, it won’t fully mimic user typing, so reserve it for data injection cases.

2. What does the switchTo() command do?

Used for switching contexts: windows, frames, or alerts.

driver.switchTo().frame("login-frame");

Alert alert = driver.switchTo().alert();

driver.switchTo().defaultContent();

For multiple windows:

for (String handle : driver.getWindowHandles()) {

driver.switchTo().window(handle);

}

3. How do you set the browser window size?

driver.manage().window().setSize(new Dimension(1280, 720));

driver.manage().window().setPosition(new Point(0, 0));

In headless mode, maximize() might not work, so explicitly set dimensions:

((JavascriptExecutor) driver).executeScript("window.resizeTo(1024, 768);");

4. When do we use findElement() vs. findElements()?

  • findElement() → returns the first match, throws exception if none
  • findElements() → returns a list, empty if nothing found

List<WebElement> results = driver.findElements(By.className("search-item"));

if (results.size() == 0) return;

5. How do you find broken links?

Grab all href attributes and run HEAD requests:

HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();

conn.setRequestMethod("HEAD");

conn.connect();

int status = conn.getResponseCode();

Skip mailto: and javascript: links. HEAD avoids downloading heavy content.

6. What automation tools compete with Selenium?

  • Cypress → modern frontend apps
  • Playwright → fast cross-browser
  • Appium → mobile
  • UFT/TestComplete → licensed, legacy apps

Choice depends on tech stack and test needs.

7. Code to launch Firefox in WebDriver:

System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");

WebDriver driver = new FirefoxDriver();

driver.get("http://www.google.com");

8. Code to launch Chrome:

ChromeOptions options = new ChromeOptions();

options.addArguments("--start-maximized");

WebDriver driver = new ChromeDriver(options);

driver.get("https://www.google.com");

For CI, add --headless=new.

9. Code to launch IE:

System.setProperty("webdriver.ie.driver", "C:\\path\\IEDriverServer.exe");

WebDriver driver = new InternetExplorerDriver();

driver.get("http://example.com");

IE requires Zoom at 100% and aligned protected mode settings.

10. Perform drag and drop:

Actions actions = new Actions(driver);

actions.dragAndDrop(source, target).perform();

If that fails:

actions.clickAndHold(source).moveToElement(target).release().perform();

Fallback: JavaScript or Robot class.

11. Refresh page in WebDriver:

driver.navigate().refresh();

driver.get(driver.getCurrentUrl());

((JavascriptExecutor) driver).executeScript("location.reload();");

12. Is there an HtmlUnitDriver for .NET?

No. HtmlUnitDriver is Java-only. In .NET, use Chrome/Firefox in headless mode, or Playwright for modern JS rendering.

13. How to use a proxy in Selenium?

Proxy proxy = new Proxy();

proxy.setHttpProxy("localhost:8080");

ChromeOptions options = new ChromeOptions();

options.setProxy(proxy);

WebDriver driver = new ChromeDriver(options);

For advanced proxy setups, integrate BrowserMob Proxy.

14. What is Jenkins, and why pair it with Selenium?

Jenkins automates test runs:

  • Triggers on commits/nightly jobs
  • Git integration
  • Maven/Gradle build runners
  • Publishes JUnit/TestNG reports

Agents let you test on multiple OS/browser combos.

15. Handling alerts:

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

wait.until(ExpectedConditions.alertIsPresent());

Alert alert = driver.switchTo().alert();

System.out.println(alert.getText());

alert.accept();

For prompts:

alert.sendKeys("input");

alert.accept();

Always wait first to avoid NoAlertPresentException.

Nail Coding Interviews with our AI Interview Assistant: Get Your Dream Job Today

InterviewCoder runs silently during your interviews. It gives you live algorithm help, code suggestions, debugging guidance, and complexity explanations, all without showing up on screen shares. No clunky overlays, no giveaways. It quietly boosts your problem-solving in real time, offering:

  • On-demand algorithm helps
  • Code templates
  • Debugging hints

While others are sweating through live interviews, you're calmly shipping clean code with support that doesn’t trip you up.

Why the LeetCode Grind Fails and What to Do Instead

You can grind 1,000+ LeetCode questions and still freeze up during a real interview.

Here’s the truth: most candidates aren’t failing because they don’t know the solution. They’re failing because they can’t reason out loud, adapt under pressure, or explain their thinking clearly.

This is where Interview Coder flips the script:

  • It suggests clear code patterns as you work
  • Highlights edge cases to consider
  • Explains time and space complexity while you type
  • Adapts to the interviewer’s follow-up prompts

Instead of memorizing, you get live reasoning support: InterviewCoder surfaces patterns, edge cases, and complexity breakdowns while you code so that you can explain your thinking clearly to interviewers.

How It Fits Into Your Interview Workflow

No setup rituals. No switching tabs. InterviewCoder sits in the background of your coding environment during live interviews, suggesting code, generating test cases, and nudging you when you stall, without breaking flow or revealing itself:

Need a binary tree traversal in Python? Done. Want a memoized DP solution in JavaScript? It's there. It even shows syntax differences between Java, Python, and JavaScript, on the fly.

You stay in flow. You stay confident.

Security and Screen Sharing Behavior

Built with security in mind:

  • Stays local, with no visible overlays during interviews
  • Doesn’t alter your shared screen
  • Logs only what you explicitly allow
  • Performance telemetry is opt-in

Everything’s designed so that you stay in full control. Interviewers see you, not the assistant.

Crush Selenium Interview Questions with AI Support

Whether you’re prepping for SDET roles or QA automation, the assistant covers Selenium like a pro:

  • Auto-generates WebDriver code in your chosen language
  • Crafts locator strategies with real-world examples
  • Produces ExpectedConditions for explicit waits

Whether it’s Selenium, Python, or system design, InterviewCoder supports you live. It generates WebDriver code, locators, waits, and even test flow explanations while you’re answering questions.

Example: Selenium WebDriver vs Selenium RC

Question: What changed between Selenium RC and WebDriver?

Answer: WebDriver replaced RC with a browser-driver architecture, communicating directly with the browser via W3C WebDriver standards. This eliminates the need for JavaScript injection, improving both performance and reliability.

Locator Strategy That Interviewers Respect

  • Prefer By.id and stable attributes
  • Use By.cssSelector for performance
  • Reach for XPath only when necessary

Tip: In XPath, use contains() or starts-with() for dynamic attributes.

XPath & CSS Selector Tips

  • Use relative XPath: //div[@class='card']//a[contains(text(),'Apply')]
  • Use CSS nth-child or attribute selectors: input[name='email']

These reduce brittle tests and prove you're not just copying locators from DevTools.

Synchronization & Waits: Must-Know Types

  • Implicit Wait: Global polling interval
  • Explicit Wait: Wait for a specific condition
  • Fluent Wait: Custom polling + exception handling

Avoid Thread.sleep() unless you want flaky, slow tests.

Alerts, Frames, Windows, Cookies: Quick Commands

// Switch to alert

Alert alert = driver.switchTo().alert();

alert.accept();

// Frame

driver.switchTo().frame("frameName");

driver.switchTo().defaultContent();

// Cookies

driver.manage().getCookies();

driver.manage().addCookie(new Cookie("key","value"));

Page Object Model (POM) and PageFactory

POM keeps tests clean and modular. Use methods to encapsulate behavior, not just element declarations. With PageFactory and @FindBy, you reduce boilerplate and gain maintainability.

Show you get it by:

  • Writing a simple LoginPage class
  • Explaining how POM helps parallel execution

Selenium Grid and Parallel Testing

  • Describe the hub-node model
  • Use RemoteWebDriver and desired capabilities
  • Show how this reduces CI test time

Bonus points: Mention Docker containers or GitHub Actions workflows that spin up a Selenium Grid.

Selenium 4 Features You Must Mention

  • Relative locators (above(), near())
  • DevTools Protocol access (performance, network interception)
  • W3C compliance

Show you’re up to date.

Test Frameworks, CI, and Reporting

  • Java: TestNG, JUnit, Maven
  • Python: Pytest
  • CI: Jenkins, GitHub Actions
  • Reports: Allure, ExtentReports

Discuss how you attach test artifacts, configure parallel runs, and trigger tests on pull requests.

Debugging Common Selenium Exceptions

Be ready to fix these live:

  • NoSuchElementException
  • StaleElementReferenceException
  • TimeoutException
  • ElementNotInteractableException

Have a checklist:

  • Re-locate elements
  • Add waits
  • Check overlays/visibility
  • Avoid brittle locators

Appium and Mobile Testing

  • Appium extends WebDriver
  • Use AndroidDriver or IOSDriver
  • Set desired capabilities
  • Automate native, hybrid, and mobile web apps

Explain emulators vs real devices. Interviewers like seeing your mobile test knowledge.

Best Practices That Set You Apart

  • Use stable locators
  • Keep tests atomic
  • Avoid fixed waits
  • Capture screenshots/logs on failure
  • Externalize test data

Explain how you’d refactor a brittle legacy suite into a fast, reliable one.

Sample Interview Question: Stale Element

How do you handle a stale element reference?

Re-locate the element before interacting, use WebDriverWait for visibility, and confirm DOM refresh triggers.

WebElement element = wait.until(ExpectedConditions.elementToBeClickable(locator));

element.click();

How the Assistant Helps in Real Interviews

During live interviews, InterviewCoder gives you runnable code, real-time explanations, and talking points for tricky follow-ups. You focus on communicating; it keeps you from freezing.

Whether it’s a Grid setup or a POM page flow, you’ve got examples ready to go.

What’s Your Next Step?

Want to stop grinding and start reasoning like a senior engineer in every interview?

Bring InterviewCoder into your next interview. Get live, undetectable AI support, from coding help to trade-off explanations, and walk out with confidence.

Let’s land that dream job.

Related Reading


Interview Coder - AI Interview Assistant Logo

Ready to Pass Any SWE Interviews with 100% Undetectable AI?

Start Your Free Trial Today