我使用WebBrowser.Document.DomDocument,发现它在IE调试工具中有不同的DOM模型。
IE Debug Tool包含有效的实际DOM模型,而WebBrowser.Document.DomDocument不包含JavaScript动态添加的某些元素。
实际上,WebBrowser控件显示所有元素,甚至是动态添加的元素,但WebBrowser.Document.DomDocument包含过时的DOM模型。
IE Debug Tool可以显示实际修改过的DOM模型的当前状态,如何使用WebBrowser组件获取当前的DOM模型?
确实应该是一种方法。
答案 0 :(得分:2)
这个问题可以使用更好的文档。但这是一个非常经典的问题,这是一个时间问题。您无疑会过早访问DomDocument属性 ,通常您会在浏览器的DocumentCompleted事件中执行此操作。这大约是javascript代码启动执行的时间。因此,在脚本进行更改之前,您将获得DOM的版本。
没有合适的方法来解决这个问题。执行Javascript完全是异步的,并且没有事件表明任何脚本代码已启动或停止运行。你能做的唯一体面的事就是“等一会儿”,使用计时器。最好反复进行,直到您看到DOM的良好指示,表明脚本已完成更改。