Перейти к содержимому

Фотография

Получить список всех ссылок


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 testbom

testbom

    Новый участник

  • Members
  • Pip
  • 28 сообщений

Отправлено 22 октября 2013 - 21:38

Доброе время суток.

Столкнулся с такой задачей: при помощи selenium WebDriver собрать в список все ссылки на странице.
(в дальнейшем работа будет проходить с полученными ссылками). Еще загвоздка в том что метод должен быть "почти" универсальным. Т.е. явный атрибут для ссылок я назвать не могу.
(Хотя к примеру за основу можно взять страницу википедии).

Очень нуждаюсь в помощи - поэтому не отказался бы от хорошего кусочка кода.
Всем за ранее огромное спасибо.


Возможно на форуме уже обсуждали это - поэтому за ранее приношу свои извинения.
  • 0

#2 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 22 октября 2013 - 22:13

Доброе время суток.

Столкнулся с такой задачей: при помощи selenium WebDriver собрать в список все ссылки на странице.
(в дальнейшем работа будет проходить с полученными ссылками). Еще загвоздка в том что метод должен быть "почти" универсальным. Т.е. явный атрибут для ссылок я назвать не могу.
(Хотя к примеру за основу можно взять страницу википедии).

Очень нуждаюсь в помощи - поэтому не отказался бы от хорошего кусочка кода.
Всем за ранее огромное спасибо.


Возможно на форуме уже обсуждали это - поэтому за ранее приношу свои извинения.

Это?
List<WebElement> linkList = driver.findElements(By.xpath("//a"));
Только это не будет работать для ссылок, организованных не через стандартный HTML-тег <a href=...>...</a>.
Например, предложенный метод не подойдёт для конструкции вида <div class="..." onclick="...">...</div>

Так что, имхо, подход изначально неверный.
  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#3 testbom

testbom

    Новый участник

  • Members
  • Pip
  • 28 сообщений

Отправлено 23 октября 2013 - 05:03

Это?

List<WebElement> linkList = driver.findElements(By.xpath("//a"));
Только это не будет работать для ссылок, организованных не через стандартный HTML-тег <a href=...>...</a>.
Например, предложенный метод не подойдёт для конструкции вида <div class="..." onclick="...">...</div>

Так что, имхо, подход изначально неверный.


Соглашусь, подход весьма неудачен. Но может у вас будут какие то предложения по этому поводу?
  • 0

#4 testbom

testbom

    Новый участник

  • Members
  • Pip
  • 28 сообщений

Отправлено 23 октября 2013 - 05:06

List<WebElement> linkList = driver.findElements(By.xpath("//a"));

И еще подскажите пожалуйста какие библиотеки задействуются при этом?
  • 0

#5 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 23 октября 2013 - 06:05



List<WebElement> linkList = driver.findElements(By.xpath("//a"));

И еще подскажите пожалуйста какие библиотеки задействуются при этом?

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver;
Стандартная библиотека JDK + библиотека селениума "selenium-server-standalone-2.31.0.jar"
  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#6 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 23 октября 2013 - 06:08

Соглашусь, подход весьма неудачен. Но может у вас будут какие то предложения по этому поводу?

Вы меня неправильно поняли.
Сама идея "получить список всех ссылок на странице" неверна.
После каждого обновления страницы Вы список будете формировать заново?

Правильный подход: использовать только те ссылки, которые нужны в определённый момент времени.
  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#7 testbom

testbom

    Новый участник

  • Members
  • Pip
  • 28 сообщений

Отправлено 23 октября 2013 - 06:33

Вы меня неправильно поняли.
Сама идея "получить список всех ссылок на странице" неверна.
После каждого обновления страницы Вы список будете формировать заново?

Правильный подход: использовать только те ссылки, которые нужны в определённый момент времени.


Дело в том что мне необходимо проверять каждый раз "новую" страницу... и данных страниц несметное количество.
Если взять полную задачу: мне необходимо собрать все ссылки на странице, отфильтровать - оставить только те, что принадлежат данному ресурсу,
после пройти по ним и проверить наличия на данных страницах так сказать "ключевого слова". Причем "глубина" перехода по ссылкам может быть различной.

И я не совсем понимаю , что значит "которые нужны в определённый момент времени".
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных