English for Selenium Testing

Learn the English vocabulary for Selenium and WebDriver-based test automation, from locator strategies to explaining flaky tests to your team.

Selenium is one of the oldest and most widely deployed browser automation tools, and teams that maintain large WebDriver suites need precise vocabulary to discuss why a test broke, whether it’s the locator, the timing, or the browser itself. Getting this language right helps you write clearer bug reports and code review comments when a suite spans hundreds of tests.

Key Vocabulary

WebDriver — the protocol and API that lets Selenium send commands to a real browser (click, type, navigate) and read back its state, acting as the bridge between your test code and the browser binary. “The test failed because the WebDriver couldn’t establish a session with the browser — check if chromedriver is even running.”

Locator strategy — the method used to find an element on the page, such as CSS selector, XPath, ID, or link text, chosen based on how stable and specific it is. “Switch the locator strategy from XPath to a CSS selector here — it’s faster and less likely to break when the DOM structure changes.”

Explicit wait — an instruction that tells WebDriver to pause until a specific condition is met, like an element becoming clickable, rather than waiting a fixed number of seconds. “Replace that hardcoded sleep(5) with an explicit wait for the button to be clickable — it’ll be both faster and more reliable.”

Flaky test — a test that passes and fails intermittently without any code changes, usually caused by timing issues, unstable locators, or race conditions with asynchronous page behavior. “This login test is flaky — it fails about one run in ten, and it’s almost always because the page hasn’t finished redirecting yet.”

Page Object Model — a design pattern where each page or component of the application under test is represented by a class that encapsulates its locators and interactions, keeping test logic separate from page structure. “We moved the checkout flow into a Page Object Model class, so when the button ID changed, we only had to update it in one place.”

Common Phrases

  • “Is this failure a real bug, or is the test just flaky?”
  • “What locator strategy are we using here, and is it resilient to layout changes?”
  • “Can we swap this implicit wait for an explicit wait on the actual condition we care about?”
  • “Should this interaction live in the Page Object Model instead of directly in the test?”
  • “Is WebDriver actually connecting to the right browser version?”

Example Sentences

Explaining a failure to a teammate: “The WebDriver session timed out because the grid had no free browser nodes — it’s not a problem with our test logic.”

Reviewing a pull request: “This locator strategy relies on a brittle XPath with three nested divs — can we add a data-testid attribute instead?”

Reporting a recurring issue to the team: “This is a flaky test, not a real regression — it depends on an explicit wait we forgot to add after the checkout modal opens.”

Professional Tips

  • Reach for locator strategy language when reviewing tests — naming exactly which selector type is fragile makes the fix obvious to whoever picks up the ticket.
  • Use explicit wait instead of vague terms like “add a wait” — it signals you’re waiting on a condition, not just adding a delay, which matters when someone reviews your code later.
  • Flag a flaky test explicitly in your bug tracker rather than just re-running it — silently re-running hides real intermittent bugs and erodes trust in the suite.
  • Recommend the Page Object Model when a test file mixes locators and assertions together — it’s the standard vocabulary for the fix and signals you understand test architecture.

Practice Exercise

  1. Explain the difference between an explicit wait and a fixed sleep, and why one is more reliable in a WebDriver test.
  2. Describe two possible causes of a flaky test in a login flow that hasn’t had any recent code changes.
  3. Write a short code review comment recommending a more stable locator strategy for a test using nested XPath expressions.

The initial goal of learning English for Selenium testing is often simply understanding the core terms – element, locator, assertion, test case. However, professional software development isn’t just about knowing the definitions; it’s about communicating effectively. For non-native speakers, this can be incredibly challenging because subtle shifts in phrasing and tone carry significant weight. A seemingly innocuous change in wording can escalate a minor issue into a major conflict or completely misunderstand a request. Let’s look at how to handle feedback – especially when it comes from code reviews or collaborative discussions – with greater precision.

One common scenario is receiving a comment on a pull request. Instead of just translating the comment (“This element is not stable”), you need to understand why it’s flagged as unstable. A more effective response, demonstrating your understanding and willingness to collaborate, might be: “Thanks for pointing this out, Mark. I’m seeing that the element intermittently disappears after clicking the button. Could you elaborate on what specific conditions are causing this? I’ll investigate the timing of the click and explore different locator strategies – perhaps a more robust selector using XPath or CSS would improve stability.” Notice how framing it as an investigation rather than admitting fault, coupled with a proactive offer to explore solutions, is far more productive. Similarly, when explaining a flaky test during a Slack conversation, avoid simply stating “This test fails randomly.” Instead, try: “I’ve identified intermittent failures in the ‘login’ test. It seems dependent on network latency – occasionally the server response takes longer than expected, leading to timeouts and ultimately the failure. I’m currently adding retry logic with exponential backoff to handle these situations.”

The key is moving beyond literal translation and focusing on conveying the intent behind the feedback. Don’t be afraid to ask clarifying questions. Asking for more detail—“Can you provide an example of when this happens?” or “What are the expected conditions?”—is a perfectly acceptable practice, especially in a collaborative environment. Remember, everyone is trying to achieve the same goal: reliable and maintainable automation. Furthermore, learning to express your own ideas clearly – describing your thought process while you’re troubleshooting – is crucial for demonstrating competence and building trust with your team.

Here’s an example of how grep can be used to identify potential issues in log files, a common scenario when debugging flaky tests:

grep -i "timeout" /path/to/your/logfiles/*.log | sort | uniq -c

This command searches for the word “timeout” (case-insensitive), counts its occurrences across all log files in the specified directory, and then displays those counts. This helps pinpoint frequency of timeout errors which can be a key indicator of flaky tests.

Frequently Asked Questions

What English level do I need to read "English for Selenium Testing"?

This article is tagged Intermediate. If you find the vocabulary difficult, start with a related Vocabulary vocabulary exercise first, then come back — technical reading gets much easier once the core terms feel familiar.

Is this article free to read?

Yes. Every article on CoderSlingo, including this one, is free to read with no account, sign-up, or paywall.

How is reading this article different from doing an exercise?

Articles like this one explain concepts and vocabulary in context through prose, while exercises are interactive drills — fill-in-the-blank, matching, and multiple-choice — that test and reinforce specific terms. Reading builds understanding; exercises build recall.