在winForm中使用webBrowser控件。但是当网页由Ajax或框架更新时,我无法使用
webBrowser1.document.getElementById
等找到htmlElement
。该元素也不会显示在IE中的View->Source code
中。
非常接近的目的是找到htmlElement
并模拟点击或其他功能
invokeMember("staff")
。
答案 0 :(得分:1)
WebBrowser的Document对象确实代表了DOM的实时视图,因此可能还有其他一些原因导致您无法找到它。但是,DOM更新不会在View中显示 - >资源。您应该使用IE8的开发人员工具,它将向您显示DOM的实时视图,并且您可能会看到类似不正确/重复ID的内容。
答案 1 :(得分:0)
我猜你已经自己解决了这个问题,但是如果你还没有,请在这里参考我的问题:WebBrowser Control and GetElement by ID
基本上,如果你对WebBrowser控件执行某些操作(即向DOM添加一些成员),它将异步执行。也就是说,它在另一个线程上执行,这样可以避免在WebBrowser正在工作时锁定调用线程。问题是,如果使用命令以编程方式修改某些内容,则必须等到该命令实际完成加载其更改,直到您可以使用它的结果。
在那里查看我的问题以获取我正在做的代码示例。我希望有人能发现我以前的试验有用。