Vol
(Vol)
01.Август.2012 14:40:29
#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?
gruba
(Леша)
03.Август.2012 15:04:27
#3
Боюсь, что никто не может осознать всю глубину ваших глубин. Я вот не смог понять, что вы хотите...
polusok
(Mykhailo Poliarush)
07.Август.2012 12:13:11
#4
так ты попробовал и оно не работает или это риторический вопрос? (можно ли такое сделать :) )
Ch00k
(Ch00k)
08.Август.2012 06:34:25
#5
Таки наверное не получится этого сделать с использованием @FindBy. http://iainrose.tumblr.com/post/28062632544/using-by-objects-to-locate-webelements-inside-other
polusok
(Mykhailo Poliarush)
08.Август.2012 07:23:40
#6
так и что эта статья объясняет? там проблема в том как проверить, что элемент находится в элементе
а тут Vol хочет доступиться к внутреннему элементу через контекст в xpath использовуюя два раза find_element
Vol
(Vol)
08.Август.2012 07:41:45
#7
а тут Vol хочет доступиться к внутреннему элементу через контекст в xpath использовуюя два раза find_element
Все верно, возможно такая структура немножко сложновата, но она мне нужна для того чтобы была возможность работать с несколькими обьектами сразу...
Относительно отзывов выше - в PageFactory нет такой возможности :)
Всем спасибо за ответы.
Kedanachi
(Kedanachi)
08.Август.2012 07:52:20
#8
Можно извратиться, передав кастомный ElementLocatorFactory. Необходимо только в Hotel дополнительные переменные добавить. ИМХО, слишком сложно, чтобы получить от этого существенный профит.
Если интересует, можно попробовать вместе разобраться.
polusok
(Mykhailo Poliarush)
08.Август.2012 10:16:00
#9
да стандартных средств нету, надо переопределять фабрики
Kedanachi, Vol, если что-то получится, выложите код сюда для других
спасибо.