Допустим мы создаем веб елемент : @FindBy(xpath = ".//[@class=‘gpp’]")WebElement googleButton;
В тесте у нас есть некоторая функция
Assert.assertEquals(element.getAttribute(“href”), text,“Element “+ googleButton + “is not have link !”+”\n”);
В данном случаем нам в консоль выпадает
Element [[FirefoxDriver: firefox on WINDOWS (98c6c742-fd49-4688-ad49-cb5cd10e4a8a)] -> xpath selector: .//[@class=‘gpp’]] is not have link ! (допустим что тест провалился )
Вопрос состоит в том , как мне получить название переменной , которую я прописал вначале ?
Беда в том что такая запись нечитабельна , в будующем я хочу логи переносить например в xml таблицу , и для наглядности мне нужно понимать с каким элементом произошли траблы
Попробуйте библиотеку Selenide.
Во-первых, сама проверка будет гораздо короче и понятнее:
$(".gpp").shouldHave(attribute(“href”));
А во-вторых, если эта проверка упадёт, сообщение об ошибке будет предельно понятным. Selenide всё распишет: какой элемент искали, а какой нашли и чего ему не хватило. И ещё скриншот сделает.
Я уже пересмотрел все , ничего похожего нет .Веб эелемент не располагает таким методом
Можно было бы создать кастомный веб элемент , который возвращал бы имя , типо рефлексии , не знаю
А разве нельзя просто название объекта взять? Как-то так:
public class TestClass{
public TestClass(){
System.out.println("Hello, I'm test class");
}
public static void main(String []args){
TestClass testClass = new TestClass();
System.out.println(testClass.getClass().getSimpleName());
}
}
Вы можете получить этот массив со всеми полями, а дальше уже по какому то условию выбрать нужный Вам и вызвать getName(). К сожалению пока что не могу придумать пок какому именно
@Vladyslav_Stuparenko, простой ответ: без дополнительных телодвижений - никак. Единственное место, откуда вы можете получить точное имя переменной - это *.class файл. Можете посмотреть в сторону специализированных reflection библиотек. Но с учетом
Единственное решение для вас - ручной маппинг филдов с константами. Надо ли оно вам? Сомневаюсь.