Windows窗体WebBrowser控件和iframe中(Windows Forms WebBro

2019-07-18 07:06发布

我想创建一个软件在网页上或多或少自动化形式馅料-我已决定使用WebBrowser控件System.Windows.Forms 。 这个伟大的工程,我可以很容易地操纵DOM通过webbrowser.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来,这样我可以访问内部DOM。

如何做到这一点?

Answer 1:

尝试使用“帧”集合,而不是。 从MSDN :

IFRAME元素用作文档内的文件,或类似的一个浮动框架。 frames集合提供了访问一个iframe的内容。 使用帧采集读取或写入包含在iframe元素。 例如,用于访问体对象的backgroundColor样式的iframe中的语法是:

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



文章来源: Windows Forms WebBrowser control and iframes