Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Selenide. Поиск XPath в SelenideElement отрабатывает по всей странице.


(Дмитрий Маханьков) #1

Добрый день. Суть в следующем

final By EDIT_BUTTON = By.xpath("//[@class=‘btn btn-primary btn-xs’]");
final By EDIT_BUTTON = By.cssSelector(".btn.btn-primary.btn-xs");
//Xpath написан для наглядности, что это один и тот же элемент.

SelenideElement row = table.$$(“tr”).get(1); // 2 строка в таблице
row.$(EDIT_BUTTON).click();

Почему-то при cssSelector кнопка нажимается в строке row, при использовании By.xpath он игнорит поиск в SelenideElement и нажимает первую найденную кнопку по xPath на странице. Разве поиск не должен осуществляться в указанном элементе row?


(Владимир Фролов) #2

Чтобы искать внутри элемента по xPath нужно указать точку в самом начале выражения:
By.xpath(".//[@class='btn btn-primary btn-xs']");


(Дмитрий Маханьков) #3

Спасибо!