Windows窗体WebBrowser控件和iframe

我试图创build一个软件,或多或less地自动化网页上的填充 – 我决定在System.Windows.Forms使用WebBrowser控件。 这很好,我可以通过webbrowser.Document等方便地操作DOM 。 然而不幸的是,我正在做自动化的网站有一个file upload,它是在一个iframe中运行 – 这是我卡住的地方,我根本无法弄清楚如何能够操作iframe的DOM内的元素。

理想情况下,我想要做的是这样的:

 HtmlElement iframe = browser.Document.GetElementById("iframe_id"); iframe.InnerDocument.GetElementById("file_upload_input").SetAttribute("value", "myfile.txt"); 

然后在iframe中提交表单 – 当然,在HtmlElement没有InnerDocument属性,我也没有发现可以投入HtmlElement ,这样我就可以访问内部DOM。

这是怎么完成的?

尝试使用“框架”集合。 来自MSDN :

iframe元素用作文档内的文档,或像浮动框架一样。 帧集合提供对iframe内容的访问。 使用frames集合来读取或写入iframe中包含的元素。 例如,访问iframe中正文对象的backgroundColor样式的语法是:

sColor = document.frames(“sFrameName”)。document.body.style.backgroundColor;