【发布时间】:2015-08-31 21:31:41
【问题描述】:
我正在使用 C# 中的WebBrowser 对象导航到一个网站,我想获得一个存在于该网站中的 Html 元素,但该元素位于其他元素的丑陋堆栈中,实际上地址是:
html -> frameset -> frame#mainFrame -> html -> body -> div -> table#AutoNumber -> tbody -> tr -> td -> div -> form#lglform -> table -> tbody - > tr -> td -> table -> tbody -> tr -> td -> input#Button1
当我尝试使用 GetElementsByTagName("input") 时,我意识到我必须先找到它的父母,为此我也必须找到它的父母,依此类推。
有没有办法定义一个 HtmlElement 并将其直接设置为该元素而无需通过所有父母?
更新
由于GetElementById,我得到了null,因为WebBrowser 没有正确加载网站,即使我使用DocumentCompleted 事件来确保这里是网站在ie 检查器中的样子:
但是 WebBrowser 对象只是加载这个 HTML
有没有办法让WebBrowser对象收集所有的HTML代码?
或者还有其他实现我目标的好方法吗?
【问题讨论】:
-
@GuillaumeBeauvois 我试过 GetElementById 结果为空
-
你能提供一些代码吗?你确定 DOM 结构和 id / class 值吗?
-
@GuillaumeBeauvois 我找到了 null 的原因,并为您添加了更多信息
-
我真的不知道我不是网站开发人员,我只是想使用
webBrowser对象来填充一些文本字段并在页面中按下按钮并以编程方式获取结果。