Windows窗体WebBrowser控件和iframe

时间:2009-09-16 20:05:56

标签: c# .net windows iframe browser

我正在尝试创建一个软件来或多或少地自动化网页上的表单填充 - 我决定在System.Windows.Forms中使用WebBrowser控件。这很好用,我可以轻松操纵DOMwebbrowser.Document等等。然而不幸的是,我正在进行自动化的网站有一个文件上传,它在iframe中运行 - 这就是我被困住的地方,我根本无法弄清楚如何能够操纵iframe的DOM内的元素。

理想情况下,我想做的是:

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

然后在iframe中提交表单 - 当然,就我所见,InnerDocument上没有HtmlElement属性,也没有找到我可以投射HtmlElement的类型{{1}} 1}}以便我可以访问内部DOM。

如何做到这一点?

1 个答案:

答案 0 :(得分:8)

请尝试使用“frames”集合。来自MSDN

  

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

     

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