t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как реализовать поиск елемента в елементе через PageFactory


(Vol) #1

Всем привет,

Хочу реализовать поиск элемента в элементе используя PageFactory.

 

Case: список из 10 отелей, каждый элемент отеля имеет цену, картинку, название.

Каждый отель я обрабатываю как элемент, далее ищу в нем его детей.

 

Пример кода:

public class Hotel {

By hotelNameXPATH = By.xpath(".//td[@class='hotel_name']");
WebElement hotelName;

public Hotel(WebElement acco) {
  hotelName = acco.findElement(hotelNameXPATH);

}
}

Как вы видете точка(dot) в хпасе означает что поиск нода будет от елемента. Возможно ли сделать подобное с PageFactory?

 


(Vol) #2

идеи?


(Леша) #3

Боюсь, что никто не может осознать всю глубину ваших глубин. Я вот не смог понять, что вы хотите...


(Mykhailo Poliarush) #4

так ты попробовал и оно не работает или это риторический вопрос? (можно ли такое сделать :) )


(Ch00k) #5

Таки наверное не получится этого сделать с использованием @FindBy. http://iainrose.tumblr.com/post/28062632544/using-by-objects-to-locate-webelements-inside-other


(Mykhailo Poliarush) #6

так и что эта статья объясняет? там проблема в том как проверить, что элемент находится в элементе

а тут Vol хочет доступиться к внутреннему элементу через контекст в xpath использовуюя два раза find_element


(Vol) #7

а тут Vol хочет доступиться к внутреннему элементу через контекст в xpath использовуюя два раза find_element

Все верно, возможно такая структура немножко сложновата, но она мне нужна для того чтобы была возможность работать с несколькими обьектами сразу...

 

Относительно отзывов выше - в PageFactory нет такой возможности :)

Всем спасибо за ответы.


(Kedanachi) #8

Можно извратиться, передав кастомный ElementLocatorFactory. Необходимо только в Hotel дополнительные переменные добавить. ИМХО, слишком сложно, чтобы получить от этого существенный профит.

Если интересует, можно попробовать вместе разобраться.


(Mykhailo Poliarush) #9

да стандартных средств нету, надо переопределять фабрики

Kedanachi, Vol, если что-то получится, выложите код сюда для других

спасибо.