Основные: id, name, className, tagName, linkText, partialLinkText, cssSelector, xpath — выбирают от самого стабильного к хрупкому.
Разбор
- id/name предпочтительны, если стабильны.
- CSS обычно читаемее и быстрее XPath для простых случаев.
- XPath мощнее для осей и текста, но хрупже при смене структуры.
- В Selenium 4 Relative Locators (
above, near) дополняют классику.
Пример
driver.findElement(By.cssSelector("[data-testid='login']"));
driver.findElement(By.xpath("//button[text()='Save']"));
Итог
Локатор — контракт с UI; приоритет стабильным атрибутам и смыслу, не позиции в DOM.