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