5

在 winForm 中使用 webBrowser 控件。但是当网页由 Ajax 或在框架中更新时,我无法使用 webBrowser1.document.getElementById等来找到htmlElement. 该元素也不会显示在View->Source codeIE 中。

untimate 的目的是找到htmlElement并模拟点击或其他功能,如 invokeMember("staff").

4

2 回答 2

1

WebBrowser 的 Document 对象确实代表了 DOM 的实时视图,因此可能有其他原因导致您无法找到它。然而,DOM 更新不会在 View -> Source 中表示。您应该使用 IE8 的开发人员工具,它会向您显示 DOM 的实时视图,并且您可能会看到诸如不正确/重复的 ID 之类的东西。

于 2010-03-18T05:51:55.717 回答
0

我猜你已经自己解决了这个问题,但如果你还没有,请在这里参考我的问题:WebBrowser Control and GetElement by ID

本质上,如果您对 WebBrowser 控件执行某些操作(即,向 DOM 添加一些成员),它将异步执行此操作。也就是说,它在另一个线程上执行,这样可以避免在 WebBrowser 工作时锁定调用线程。问题是,如果您使用命令以编程方式修改某些内容,您将不得不等到该命令实际完成加载其更改,直到您可以使用它的结果。

在那里检查我的问题以获取我在做什么的代码示例。我希望有人能发现我以前的试验有用。

于 2012-05-20T22:19:16.190 回答