Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体WebBrowser控件和iFrame_C#_.net_Windows_Iframe_Browser - Fatal编程技术网

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属性怎么办?