17. Professional Locators: Robust XPath, CSS & Axes Strategies

Locator Hierarchy (Reliability Order)

1. By.id("login-btn") - Fastest & unique 2. By.cssSelector("button[data-testid='submit']") - Fast & readable 3. By.xpath("//button[contains(text(), 'Submit')]") - Powerful text search 4. By.xpath("//td[text()='ORD-101']/following-sibling::td//button") - XPath axes
// XPath Axes:
// Find delete button for a specific table user:
By deleteBtn = By.xpath("//tr[td[contains(text(), 'Dhanu')]]//button[@aria-label='Delete']");

Task

  • Implement createDynamicButtonXPath:
  • 1. Accept String buttonText.
  • 2. Return By.xpath("//button[contains(normalize-space(), '" + buttonText + "')]").
πŸ’‘Common doubts
Did you like the problem?
Lesson 17 of 44
Java
Loading code editor…
Next