Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?
собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.
Здравствуйте, HAS, Вы писали:
HAS>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?
HAS>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.
Вы сперва напишите как собираетесь формировать правила (или политики) контроля. Опять же, нужна ли защита от подмены. Да и не плохо было бы отметить будет ли веб-приложение грузиться по частям, имеется в виду по ходу работы.
Реализовать Вашу задачу на серверной стороне может оказаться пустой тратой времени. Все зависит от цели. Какова цель контроля?
Здравствуйте, HAS, Вы писали:
HAS>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?
HAS>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.
Попробуй взять firefox и Selenium2 (aka webdriver)
Re[2]: native С++ (или C#), Webbrowser & JavaScript
Здравствуйте, boot, Вы писали:
B>Здравствуйте, HAS, Вы писали:
HAS>>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?
HAS>>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.
B>Вы сперва напишите как собираетесь формировать правила (или политики) контроля. Опять же, нужна ли защита от подмены. Да и не плохо было бы отметить будет ли веб-приложение грузиться по частям, имеется в виду по ходу работы. B>Реализовать Вашу задачу на серверной стороне может оказаться пустой тратой времени. Все зависит от цели. Какова цель контроля?
на серверной стороне ничего делать не нужно (пока во всяком случае, но тоже интересно узнать как). Все нужно делать программно у клиента
Re[3]: native С++ (или C#), Webbrowser & JavaScript
Здравствуйте, HAS, Вы писали:
HAS>Здравствуйте, boot, Вы писали:
B>>Здравствуйте, HAS, Вы писали:
HAS>>>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?
HAS>>>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.
B>>Вы сперва напишите как собираетесь формировать правила (или политики) контроля. Опять же, нужна ли защита от подмены. Да и не плохо было бы отметить будет ли веб-приложение грузиться по частям, имеется в виду по ходу работы. B>>Реализовать Вашу задачу на серверной стороне может оказаться пустой тратой времени. Все зависит от цели. Какова цель контроля?
HAS>на серверной стороне ничего делать не нужно (пока во всяком случае, но тоже интересно узнать как). Все нужно делать программно у клиента
т.е. нужно использовать не имеющийся в системе браузер, а, например, ActiveX контрол TWebBrowser, TEmbeddedWebBrowser и аналогичные им, да так, чтобы это происходило невидимо для пользователя. Т.к. приложение грузит страничку, страничка отрабатывает (js), приложение как-то (как?) узнает что все скрипты отработали, забирает сформированный текст страницы и, анализируя ее, выдает уже пользователю то что он ожидает
Re[3]: native С++ (или C#), Webbrowser & JavaScript
Здравствуйте, HAS, Вы писали:
HAS>Здравствуйте, LuciferSingapore, Вы писали:
LS>>Попробуй взять firefox и Selenium2 (aka webdriver)
HAS>так, и как это прикрутить к своему коду?
если код на питоне (как было в моем случае), то нужно поставить модуль selenium, в нем есть интерфейс для взаимодействия с браузером
есть клиентская либа для Java
Здравствуйте, HAS, Вы писали:
HAS>т.е. нужно использовать не имеющийся в системе браузер, а, например, ActiveX контрол TWebBrowser, TEmbeddedWebBrowser и аналогичные им, да так, чтобы это происходило невидимо для пользователя. Т.к. приложение грузит страничку, страничка отрабатывает (js), приложение как-то (как?) узнает что все скрипты отработали, забирает сформированный текст страницы и, анализируя ее, выдает уже пользователю то что он ожидает
Здравствуйте, HAS, Вы писали:
HAS>>на серверной стороне ничего делать не нужно (пока во всяком случае, но тоже интересно узнать как). Все нужно делать программно у клиента
HAS>т.е. нужно использовать не имеющийся в системе браузер, а, например, ActiveX контрол TWebBrowser, TEmbeddedWebBrowser и аналогичные им, да так, чтобы это происходило невидимо для пользователя. Т.к. приложение грузит страничку, страничка отрабатывает (js), приложение как-то (как?) узнает что все скрипты отработали, забирает сформированный текст страницы и, анализируя ее, выдает уже пользователю то что он ожидает
Я почти понял. Вам нужно _расширение_браузера_, для ИЕ оно действительно будет на плюсах или шарпах. Для целей тестирования (определения, что ошибка есть) или дебага (определение где эта ошибка) в какой-то степени действительно подходит то, что написал LuciferSingapore.
А вот "как?", это вопрос к Вам. Допустим такой случай, в коде есть лишнее определение, пусть даже без присвоения, допустим оно перекрывает значение какой-то важной переменной, чем сильно портит жизнь (или меняет ее направление ) кому-то (опять же кому? пользователю?), выглядит все это просто:
a=3 // "выбранное направление"
...
[b]a[b] // что здесь контролировать? значение "a" становится undefined
...
go[a](); // в итоге "никуда не идем"
При дебаге Вы бы могли по частям или построчно контролировать код делая паузу после каждой итерации, либо меняя значения переменных. Но это если цель -- дебаг.
Возможно, Вам нужен контроль видимого содержимого страницы, на предмет наличия не цензурных слов, например. В чем проблема? Делаете стиль body invisible !important, анализируете DOM, делаете видимым или вовсе удаляете содержимое. Опять же это расширение браузера.
Жизнеспособность прямо пропорциональна простоте!
Re[5]: native С++ (или C#), Webbrowser & JavaScript
ЗЫ: Если посетите гугл, ключевые слова:
для ИЕ "надстройка"
для ФФ addon, дополнение
дла Chrome extention, расширение
и т.д. называют по разному, суть та же