Подход, который зачастую упирается в нежелание разработчиков писать тестовые атрибуты и нежелание менеджеров эту практику правильно прививать. Однако если взлетает, то жить становится и правда легче.
Можно просто заэкстендить класс By, добавить туда метод testId():
public static By testId(String selector) {
if (selector == null) {
throw new IllegalArgumentException("Cannot find elements when locator is null");
} else {
return new ByCssSelector(String.format("[data-testid='%s']", selector));
}
}
И после этого вполне себе использовать радостно свои тест-айдишки, импортируя свой соответствующий By, вместо селениумовского:
driver.findElement(By.testId("entry-btn"))
Information
Rating
Does not participate
Registered
Activity
Specialization
Test Automation Engineer, Quality Assurance Manager
Подход, который зачастую упирается в нежелание разработчиков писать тестовые атрибуты и нежелание менеджеров эту практику правильно прививать. Однако если взлетает, то жить становится и правда легче.
Добавлю только, что в случае с Селениумом:
Можно просто заэкстендить класс By, добавить туда метод testId():
И после этого вполне себе использовать радостно свои тест-айдишки, импортируя свой соответствующий By, вместо селениумовского: