2011-12-27 61 views
12

今天,我一直在互聯網上跳來跳去,在閱讀了很多解決方案後,我決定編寫一個Chromium包裝器將是一個有趣的學習體驗;更何況這對我目前正在進行的幾個項目來說是值得的。爲Chromium編寫一個託管包裝

我知道那裏已經有一些包裝(awesomium,berkelium),更不用說一些基本教程like this one,但我正在編寫我自己的包裝。

我這樣做的主要目的是爲了能夠創建和訪問由WebKit生成的用於C#的DOM結構,無論是在HTML所依賴的任何JavaScript運行之前還是之後。我知道我可以考慮使用HTMLAgilityPackMajestic12進行HTML解析,但我期望在經過驗證的引擎上構建一些快速,高效的引擎,並且將在可預見的未來積極開發。 WebKit是一個積極開發的佈局引擎,嵌入到一些最流行的瀏覽器中,而V8是一款令人印象深刻的JavaScript引擎,因此決定使用Chromium。

看到我不關心實際渲染任何內容,而是尋找訪問網頁的結構,我覺得嵌入WebKit的整體可能是矯枉過正。即使在我希望JavaScript改變DOM的情況下,我仍然沒有用於渲染結果。

總結

所有我真正從鉻想要的是創建一個web頁面的DOM的能力,以及(可選)運行使用Chromium的令人印象深刻的V8引擎進一步處理,上述頁的腳本能力DOM。我知道這將是一項艱鉅的任務,但我很有興趣看看你有什麼要說的。 簡而言之,有人與WebKit和V8(可能通過Chromium)合作,誰可以評估這種可行性並借給我他們的專業知識(通過如何解決這個問題的建議)?我知道我最終可以確定一個適當的方法來處理這個問題,但我期望加快這一過程。或者是一個相對簡短而又甜美的高級別「這就是我要做的事」,這就是我正在尋找的東西(也就是我不需要任何太過花哨的東西)。

我希望我所要求的不是太疏離。如果你發現它太籠統了,想要關閉這個話題,不要這樣做,請發表評論,我會盡量縮小焦點。正如我剛纔所說,自從我感冒了以後,我的思維在今天四處跳動。

+3

這真的不是在這樣的事情上招募援助的地方。如果你有問題,你擴大你的答案的能力,目前這個問題的答案是非常特定的。 – 2011-12-27 19:45:23

+1

@Rhhound我不想找人爲我寫這篇文章。我只是在尋找有更多經驗與這些項目合作的人的建議。另外,我不確定我是否理解你想說的話,如果你有問題,你擴展了獲得答案的能力,目前這個問題的答案是非常特殊的[原文如此]。' – JesseBuesking 2011-12-27 20:25:37

+4

你正在討論創造http://www.phantomjs.org/? – 2012-01-29 22:40:03

回答

0

我使用Selenium WebdriverChromeDriver進行自動腳本,網頁和驗收測試。 Easy to set upeasy to use

這個想法是,你可以使用這個現有的接口,但change the path to the Chrome executable with ChromeOptions.BinaryLocation。嘗試將其指向WebKit的一個現有無頭版本,如WebKitDriver - 它可能正常工作。

我們的目標可能不同,但我會對自己的無頭版本感興趣。在我的開發機器上進行測試時,它不那麼突兀,我在測試失敗時已經採用了自動截圖。

1

我在同一路徑上。我正在深入探索QtWebKit,並且在PhantomJs上完成了這個Selenium,並且在我的測試中像一個魅力一樣工作。

當您使用QtWebKit時,作爲WebKit的驅動程序,您並不那麼容易。