Могу ли я использовать Selenium 2 для извлечения данных HTML без необходимости открывать новое окно браузера? - PullRequest
2 голосов
/ 24 февраля 2012

Я хочу создать приложение, которое будет входить на веб-сайт и извлекать исходный код HTML с внутренних страниц. (как бот, который регистрирует и собирает данные HTML) вроде веб-сканера, я думаю.

Я могу сделать это с помощью Selenium 2, но я вынужден создать новый WebDriver, и для этого он открывает окно браузера и затем выполняет команды.

Есть ли способ избежать открытия окна браузера и просто получить нужные мне данные, даже если мне нужно отправить команду .click () на странице входа в систему, прежде чем я получу нужные исходные данные HTML?

Я прочитал это: Можно ли скрыть браузер в Selenium RC? Но он использует Selenium RC, который, я думаю, является старой технологией, которая была заменена Selenium 2

.

В качестве альтернативы, не могли бы вы, ребята, порекомендовать мне технологию помимо Selenium, которую я мог бы использовать для достижения этой цели?

Спасибо, что уделили время на чтение моего вопроса:)

Ответы [ 3 ]

3 голосов
/ 24 февраля 2012

Если вы ищете что-то с WebDriver (Selenium 2), то есть HTMLUnitDriver, который поставляется с ним и не запускает браузер.Цитата из: http://code.google.com/p/selenium/wiki/GettingStarted «Это чистый драйвер Java, который работает полностью в памяти. Из-за этого вы не увидите открытого окна нового браузера».Пример также доступен.

0 голосов
/ 22 июля 2013

Если вы работаете в системах Unix / Linux, вы также можете использовать xfvb, который является виртуальным X-кадровым буфером.Это сервер X11, который выполняет все графические операции в памяти без визуального отображения на экране.Я считаю, что это должно быть быстрее, чем обычный сервер X11.

Use может использовать его со следующими командами (в системах, совместимых с Red Hat):

> sudo yum install Xvfb
> Xvfb :10 -screen 0 1024x768x24 &
> DISPLAY=:10 firefox http://www.google.com &
> DISPLAY=:10 import -window root www.google.com.png

Последняя команда сделает снимок экрана с окном.

Для запускаСелен с Xvfb, вы можете просто экспортировать переменную DISPLAY с помощью команды:

> export DISPLAY=:10

Теперь, когда вы запускаете селен с того же терминала, он будет использовать виртуальный сервер X11.

HTH.

Шумин

0 голосов
/ 24 февраля 2012

Нет, но есть много браузерных эмуляторов, которые (возможно) могут сделать эту работу.Например, WWW-Mechanize , SimpleTest , Механизация .. зависит от того, на каком языке вы хотите программировать.

...