Получите локатор By уже найденного WebElement.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получите локатор By уже найденного WebElement.

Сообщение Anonymous »

Есть ли элегантный способ получить локатор By веб-элемента Selenium, который я уже нашел/идентифицировал?

Чтобы внести ясность о вопросе: я хочу, чтобы «По локатору» использовалось для поиска элемента. В данном случае меня не интересует конкретный атрибут или конкретный локатор, например css-locator.

Я знаю, что могу проанализировать результат метода toString() WebElement:

Код: Выделить всё

WebElement element = driver.findElement(By.id("myPreciousElement"));
System.out.println(element.toString());
Вывод будет выглядеть, например:


[[FirefoxDriver: Firefox в WINDOWS (....)] -> id: myPreciousElement]


если вы нашли свой элемент по xpath:

Код: Выделить всё

WebElement element = driver.findElement(By.xpath("//div[@someId = 'someValue']"));
System.out.println(element.toString());
Тогда ваш результат будет:


[[FirefoxDriver: Firefox в WINDOWS (....)] -> xpath: //div[@someId = 'someValue']]


Так что я сейчас написал мой собственный метод, который анализирует этот вывод и дает мне "воссоздан" По локатору.

НО существует ли более элегантный способ, уже реализованный в Selenium получить локатор "По", используемый для поиска элемента? Мне пока не удалось его найти.

Если вы уверены, то из списка нет ни одного поле, можете ли вы придумать причину, по которой создатели API могут не предоставить это функциональность?

*Несмотря на то, что это не имеет ничего общего с вопросом, если кто-то задается вопросом, зачем вам вообще нужна эта функциональность, всего 2 примера:


[*]если вы используете PageFactory, у вас, скорее всего, не будет локаторов в качестве переменных-членов в вашем классе Page , но они могут понадобиться вам позже при работе с элементами страницы.
[*]вы работаете с API людей, которые просто используют шаблон объекта страницы без PageFactory и поэтому ожидают, что вы передадите локаторы вместо самого элемента.*


Подробнее здесь: https://stackoverflow.com/questions/316 ... webelement
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»