Доброго дня!)
Ситуация заключается в следующем. Имеется динамический реестр записей, в который, с использованием автотеста, добавляется запись AutoQACategory. Так как реестр динамический, я не знаю, какой индекс присвоен данной записи. Для получение элементов реестра, и нахождения требуемой записи использую следующий подход:
public void elementsInTable(){
ElementsCollection classes = $$x("//tbody/tr[@class]");
for(SelenideElement record : classes){
SelenideElement test = record.shouldHave(text("AutoQACategory"));
}
Подскажите пожалуйста, как получить индекс искомого элемента?
P.s. Такая логика необходима для проверки удаления созданного элемента в реестре. К сожалению это можно сделать только активировав кнопку, расположенную в той же строке, что и запись в реестре.
Большое спасибо за подсказку со строкой. Мне удалось найти необходимую строку в реестре, но не получается достучаться до кнопки редактирования, которая непосредственно относится к этой строке. Для удобства, прикладываю скрин. Синим отмечена кнопка редактирования, черным непосредственно текст записи
Воспользовался советом и сделал следующее:
public void editButton(){
SelenideElement row = $(byTagAndText(“tr/td/span”, “AutoQACategory”));
SelenideElement editButton = row.$x("//td/i[@onclick = ‘toggleKebab(this)’]");
editButton.click();
}
При обнаружении элемента editButton возникает ошибка: Method threw ‘java.lang.IllegalArgumentException’ exception. Cannot evaluate jdk.proxy2.$Proxy11.toString()
Так же пробовал
public void editButton(){
SelenideElement row = $(byTagAndText(“tr”, “AutoQACategory”));
SelenideElement editButton = row.$x("//td/i[@onclick = ‘toggleKebab(this)’]");
editButton.click();
}
Но в таком случае строка не находится:
NoSuchElementException: no such element: Unable to locate element: {“method”:“xpath”,“selector”:".//tr/text()[normalize-space(translate(string(.), ’