访问IFrame和SetAttribute值

时间:2014-02-17 21:32:27

标签: c# html iframe webbrowser-control setattribute

通常我可以访问html标签,我可以通过类似的代码设置它们的值;

HtmlElementCollection coll = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement curElement in coll)
{
  if (curElement.GetAttribute("name").ToString() == "login")
  {
    curElement.SetAttribute("Value", "123456789"); 
  }
}

但是如果iframe标签中存在html输入区域,则此代码无效,

我换了一行:

var coll = webBrowser1.Document.GetElementsByTagName("input");

var coll = webBrowser1.Document.Window.Frames[0].Document.GetElementsByTagName("iframe")

但它仍然没有用。请帮忙。自上周以来,我无法克服这个问题

1 个答案:

答案 0 :(得分:0)

如果您更改此行,您的代码应该会起作用:

coll = webBrowser1.Document.Window.Frames[0].Document.GetElementsByTagName("iframe")

coll = webBrowser1.Document.Window.Frames[0].Document.GetElementsByTagName("input");

这是一个有效的例子......

HtmlWindow iframe = webBrowser1.Document.Window.Frames[0];
HtmlElement input = iframe.Document.GetElementsByTagName("input")[0];

input.SetAttribute("value", "Test");

这显然假设您在子文档中至少有一个iframe元素和至少一个input元素。