Selenium WebDriver provides 8 locator strategies:
| Locator | Example | Best For |
|---|---|---|
| id | By.id("username") | Fastest — unique ID |
| name | By.name("email") | Form fields with name attribute |
| className | By.className("btn") | Elements with unique class |
| tagName | By.tagName("input") | Group of same-type elements |
| linkText | By.linkText("Click Here") | Exact anchor text |
| partialLinkText | By.partialLinkText("Click") | Partial anchor text |
| cssSelector | By.cssSelector("#id .class") | Fast, flexible selection |
| xpath | By.xpath("//input[@id=''user'']") | Most powerful, DOM traversal |
Priority order (fastest to slowest): id > name > cssSelector > xpath
Quick example:
Java
driver.findElement(By.id("username")).sendKeys("admin");
driver.findElement(By.cssSelector(".btn-primary")).click();
driver.findElement(By.xpath("//button[text()=''Submit'']")).click();
