QA PRACTICE•XPATH ADVANCED

Locator Practice HubTopics / Advanced XPath

Lesson 7 / 20 · Advanced

Advanced XPath

Practice axes, normalize-space, and contains safely.

15 min

Not completed

Concept

Advanced XPath axes; ancestor, parent, descendant, following-sibling, preceding-sibling ve `normalize-space`, `translate`, `and/or/not`, union (`|`) ile ifade edilir. Class için `contains(@class,'btn')` yerine tam token concat kalıbı kullan.

Prerequisites: XPath basics

Live demo

Try the locator

Scoped to lesson demo
Ready

Try the locator against the live demo.

Good

İlişkiyi anlatan axis ve normalize-space kullan.

Avoid

`contains(@class, 'btn')` ile btn-primary’yi yanlışlıkla eşleştirme.

Why

İleri XPath karmaşık DOM’larda doğru ilişkiyi ifade eder; ama okunabilirliği korumak gerekir.

Real-world trap

`following-sibling::` ile CSS `~` yalnızca benzer görünür; bağlam ve sıra farklarını kontrol et.

Framework comparison

Playwright

page.locator("//div[@data-testid='advanced-xpath']/button[normalize-space()='Open report']")

Selenium

driver.findElement(By.cssSelector("//div[@data-testid='advanced-xpath']/button[normalize-space()='Open report']"))

Cypress

cy.get("//div[@data-testid='advanced-xpath']/button[normalize-space()='Open report']")

Mini quiz

Tam class token eşleşmesi neden gerekir?