在winForm中使用webBrowser控件。但是當網頁由Ajax或框架更新時,我不能使用 webBrowser1.document.getElementById
等查找htmlElement
。該元素也不會顯示在IE中的View->Source code
。webBrowser控件在Ajax網頁更新後或在框架中找不到htmlElement
最親密的目的是找到htmlElement
並模擬點擊或其他功能,如 invokeMember("staff")
。
在winForm中使用webBrowser控件。但是當網頁由Ajax或框架更新時,我不能使用 webBrowser1.document.getElementById
等查找htmlElement
。該元素也不會顯示在IE中的View->Source code
。webBrowser控件在Ajax網頁更新後或在框架中找不到htmlElement
最親密的目的是找到htmlElement
並模擬點擊或其他功能,如 invokeMember("staff")
。
WebBrowser的Document對象確實代表DOM的實時視圖,因此可能有其他原因導致您無法找到它。 DOM更新不會在View - > Source中表示。你應該使用IE8的開發工具,它會告訴你一個DOM的實時視圖,也許你會看到一些不正確的/重複的ID之類的東西。
我猜你已經解決了你自己這個問題,但如果你沒有,請參閱我的問題在這裏:WebBrowser Control and GetElement by ID
事實上,如果你做一些事來WebBrowser控件(即,向DOM中添加一些成員),它會這樣做異步。也就是說,它在另一個線程上執行,這樣可以避免在WebBrowser正在工作時鎖定調用線程。問題是如果你用命令編程修改某些東西,你必須等到這個命令實際上完成加載它的修改,直到你可以處理它的結果爲止。
查看我的問題,瞭解我在做什麼的代碼示例。我希望有人能找到我以前的試驗有用。