Библиотечка для эмуляции работы браузера

YUAL

Надо быстро напилить костылёк: нужно сэмулировать поведение пользователя на сайте. Чтобы грубо говоря заходил на сайт, подгружал и выполнял ява-скрипты и картинки, устанавливал куки, переходил сперва на одну ссылку, потом на другу.
Пробовал было изобразить курлом тоже самое - но видимо что-то упускаю и поведение отличается с точки зрения сервера.
Есть готовая библиотечка для эмуляции такого? Желательно под что-нить простое и высокоуровневое типа питона или руби.

Maurog

selenium ?

Hastya

geb

solambo

WatiN, как вариант. Пример кода:
public void SearchForWatiNOnGoogle
{
using (var browser = new IE("http://www.google.com"
{
browser.TextField(Find.ByName("q".TypeText("WatiN");
browser.Button(Find.ByName("btnG".Click;

Assert.IsTrue(browser.ContainsText("WatiN";
}
}

Ivan826

Мы для этих целей юзаем selenium в связке с phantomJs (на js пишем)
Вроде надёжно работает

luna89

phantomjs

serega1604

мне всегда казалось, что селениум не эмулирует работу браузера, а запускает браузер и эмулирует работу пользователя.

uncle17

+1
Селениум же на яве, а ява сама пускает браузер

uncle17

Хотя ТС это и надо, в общем-то

serega1604

Хотя ТС это и надо, в общем-то
ну хз, может ему вообще грейзманки хватит в таком случае.

uncle17

тогда что он курлом посылает?
И что получает?
Когда получит "200 ОК", тему можно закрывать - разберется

serega1604

я кстати вдруг вспомнил, что в фф теперь есть "copy as curl", вполне может помочь получить "200 OK"

yroslavasako

селениум умеет и httpclient библиотеку использовать

serega1604

А еще можно напрямую java.net.* использовать в селениуме, и что? Тогда уж на curl навелосипедить можно, уровень абстракций и ручной работы одинаковый.

YUAL

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

tokuchu

Если нужно просто какие-то действия сделать, а не эмулировать полноценного пользователя, то подойдёт какой-нибудь Mechanize в Ruby или WWW::Mechanize в Perl.

stm5872449

Если нужно просто какие-то действия сделать, а не эмулировать полноценного пользователя, то подойдёт какой-нибудь Mechanize в Ruby или WWW::Mechanize в Perl.
Не поддерживает джаваскрипт, а сейчас часто даже примитивные CRUDы без него не работаеют. :(

tokuchu

Не поддерживает джаваскрипт
Ну неправда же. По крайней мере в перловой версии про него написано. Про руби не знаю.

serega1604

Ну неправда же. По крайней мере в перловой версии про него написано. Про руби не знаю.
ага, написано
Please note that Mech does NOT support JavaScript, you need additional software for that.

tokuchu

Может быть сам Mechanize и не поддерживает. Ну там есть ссылки на то, что поддерживает и ведёт себя точно так же. :)
Оставить комментарий
Имя или ник:
Комментарий: