Нужно распечатать все ссылки на боковой панели в селене (xpath?) - PullRequest
0 голосов
/ 04 августа 2011

Мне нужно найти дополнительные ссылки и распечатать их. Я начал с того, что:

get_xpath_count('//li/a')

и сравнение его с размером массива, содержащего имя всех ссылок для боковой панели. Когда счетчик слишком высок / низок, мне нужно распечатать все лишние / недостающие ссылки. Я хотел бы сделать список имен, чтобы я мог сравнить его с массивом. Я пробовал несколько вещей, таких как get_text('//li/a'), который возвращает имя первого. get_text('//li/a[1]) делает то же самое, но любой другой индекс ничего не возвращает.

Есть идеи? Кроме того, мне нужно имя, отображаемое в ссылке, а не фактическая ссылка.

Редактировать * Кроме того, я новичок в селене и Xpath. Пожалуйста, дайте мне знать, если есть информация, которую я сообщаю, которая необходима, или просто какие-либо предложения относительно того, как я собираюсь об этом.

Ответы [ 3 ]

0 голосов
/ 05 августа 2011

Используйте

(//li/a)[$someNumber]

это даст вам текст $someNumber -го //li/a в документе XML.

Чтобы узнать, какие значения использовать для замены $someNumber, вам необходимо знать общее количество этих элементов :

count(//li/a)
0 голосов
/ 05 августа 2011

Это в JAVA. Вы можете использовать ту же концепцию в Perl

int totCountInPage=selenium.getXpathCount(//li/a);
for(int count=1;count<=totCountInPage;count++)
System.out.println(selenium.getText("xpath=//li[count]/a"));

Это должно напечатать текст внутри якорных ссылок под всеми тегами li.

0 голосов
/ 04 августа 2011

Мне удалось заставить это работать, используя локаторы элементов CSS .Поскольку я использую селекторы CSS гораздо чаще, чем Xpath, мне легче всегда использовать их и с Selenium.

$selenium->get_text("css=li a:nth-child(1)")
$selenium->get_text("css=li a:nth-child(2)")
$selenium->get_text("css=li a:nth-child(...)")
$selenium->get_text("css=li a:nth-child(n)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...