C# Windows窗体WebBrowser控件和iFrame
我正在尝试创建一个软件来或多或少地自动化网页上的表单填充-我决定使用C# Windows窗体WebBrowser控件和iFrame,c#,.net,windows,iframe,browser,C#,.net,Windows,Iframe,Browser,我正在尝试创建一个软件来或多或少地自动化网页上的表单填充-我决定使用System.Windows.Forms中的WebBrowser控件。这非常有效,我可以通过webbrowser.Document等轻松地操作。然而不幸的是,我正在进行自动化的站点上有一个文件上传,它在iframe中运行——这就是我被卡住的地方,我根本不知道如何操作iframe的DOM中的元素 理想情况下,我想做的是: HtmlElement iframe = browser.Document.GetElementById("i
System.Windows.Forms
中的WebBrowser控件。这非常有效,我可以通过webbrowser.Document
等轻松地操作。然而不幸的是,我正在进行自动化的站点上有一个文件上传,它在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
如何做到这一点?尝试改用“框架”集合。发件人:
iframe元素用作
文档中的文档,或类似于
浮动框架。帧集合
提供对文档内容的访问
iframe使用“帧”集合
读取或写入中包含的元素
iframe.例如,的语法
访问的背景颜色样式
iframe中的主体对象是:
斯考勒=
document.frames(“sFrameName”).document.body.style.backgroundColor
啊哈-那是我忘记的事。但需要注意的是,您在此处发布的代码是javascript-WebBrowser控件需要相应的代码是browser.Document.Window.Frames[“frame”]来获取iframe元素。@kastermester在browser.Document下没有.Window(仅在live object下选中),并且上述代码不起作用(无论如何在VB6中)。.frames[…]和.frames(…)之间有区别吗??所以(或者[有区别吗?我尝试了两种方法都没用。嗨,如果iframe没有name属性怎么办?