您好,登錄后才能下訂單哦!
前些天想用PHP socket做一個網站的自動登錄和數據采集,卻發現這個網站用HTML5編寫,數據存儲用localstorage,PHP暫時找不到localstorage的數據提交方法,想用C#實現,卻發現C#自帶的webBrowser是調用IE的核心,IE是不支持localstorage的。只有找C#的第三方瀏覽器插件,剛開始用GeckoFx,發現GeckoFx的文檔太少了,又沒更新,最后找到webKit,文檔一樣是少得可憐,相關實例在網上只找到一二個有參考價值的。下面是我要用C# + webkit實現的功能。
c#調用webKitBrowser瀏覽器打開網址,加載完成后,模擬點擊網址頁面上的一個<DIV id="xxx">事件。
以下代碼在WebKit.NET-0.5,VS2010環境下測試成功。
c#
webKitBrowser1.StringByEvaluatingJavaScriptFromString("document.getElementById('youidname').click()");
這種方法實現模擬點擊有問題,只能實現input的點擊,想模擬div或a標簽點擊會提示"對 COM 組件的調用返回了錯誤 HRESULT E_FAIL。"
用下面的方法沒有問題
webKitBrowser1.StringByEvaluatingJavaScriptFromString("var _elm = document.getElementById('youidname');var _evt = document.createEvent('MouseEvents');_evt.initEvent('click', true, true);_elm.dispatchEvent(_evt);");
另外C#運行頁面的JS方法可以這樣
webKitBrowser1.Document.InvokeScriptMethod("add_div"); //add_div是JS的方法名稱
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。