Подтвердить что ты не робот

Написание управляемой обертки для Chromium

Сегодня я подпрыгивал по всему Интернету, и, прочитав множество решений, я решил, что писать обложку Chromium было бы интересным опытом обучения; не говоря уже о том, что это будет полезно для нескольких проектов, над которыми я сейчас работаю.

Я знаю, что там уже есть некоторые обертки (awesomium, berkelium), не говоря уже о некоторых базовых учебниках как этот, но я смотрю, как писать собственную обертку.

Моя основная заинтересованность в этом заключается в том, что я могу создать и получить доступ к структуре DOM, сгенерированной WebKit для использования в С#, как до, так и после того, как был запущен любой javascript, который зависит от html. Я знаю, что я мог бы взглянуть на использование HTMLAgilityPack и Majestic12 для синтаксического анализа HTML, m хочет создать что-то поверх проверенного и проверенного двигателя, который быстр, эффективен и будет активно развиваться в обозримом будущем. WebKit - это активно развитый механизм компоновки, встроенный в одни из самых популярных браузеров, а V8 - впечатляющий механизм JavaScript, поэтому решительное использование Chromium.

Увидев, как я не забочусь о фактическом рендеринге какого-либо контента, и вместо этого я ищу доступ к структуре веб-страницы, я считаю, что внедрение WebKit в целом может быть переполнено. Даже в тех случаях, когда мне нужен javascript для изменения DOM, мне все равно не нужно использовать результаты.

В заключение:

Все, что я действительно хочу от Chromium, - это возможность создания DOM веб-страницы и (необязательно) возможность запуска скриптов страниц с использованием мощного V8-движка Chromium для дальнейшего управления DOM. Я знаю, что это будет серьезная задача, но мне интересно посмотреть, что вы скажете. Короче говоря, кто-то работал с WebKit и V8 (возможно, через Chromium), кто мог оценить возможность этого и предоставить мне свой опыт (с помощью рекомендаций по тому, как подойти к этому)? Я знаю, что могу в конечном итоге определите подходящий способ приближения к этому, но я хочу немного ускорить процесс. Ссылки или, возможно, относительно короткий и сладкий высокоуровневый "Вот как я это делаю" - это то, что я ищу (иначе мне не нужно ничего слишком ужасного).

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

4b9b3361

Ответ 1

Я на том же пути. Я смотрю глубоко на QtWebKit, а реализация выполнена на PhantomJs, который похож на Selenium, и работал как прелесть на моих тестах.

Когда вы используете QtWebKit, как ваш драйвер для WebKit, вы ll save time for next releases of it, because maintain a WebKit Port it не так просто.

Ответ 2

Я использую Selenium Webdriver с ChromeDriver для автоматизированных script, веб-страниц и приемочных испытаний. Простота настройки, проста в использовании.

Идея состоит в том, что вы можете использовать этот существующий интерфейс, но изменить путь к исполняемому файлу Chrome с помощью ChromeOptions.BinaryLocation. Попробуйте указать его на один из существующих безголовых сборок WebKit, например WebKitDriver - он может просто работать.

Наши цели могут быть разными, но меня бы заинтересовала сама версия без головы. Это было бы менее навязчиво во время тестирования на моей машине dev, и я уже делаю автоматические скриншоты, когда тест терпит неудачу.