【问题标题】:Access in IFrame and SetAttribute value访问 IFrame 和 SetAttribute 值
【发布时间】:2014-02-18 08:27:01
【问题描述】:

通常我可以访问 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")

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

【问题讨论】:

  • “不起作用”是什么意思?有错误信息吗?
  • 没有给出错误,我的意思是,它不能设置输入字段的属性。但我用 Adam Valpied 的回答解决了问题
  • 那么您应该将 Adam 的回答勾选为已接受,这是他获得帮助的方式。

标签: c# html iframe webbrowser-control setattribute


【解决方案1】:

如果您更改此行,您的代码看起来应该可以工作:

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 元素和至少一个输入元素。

【讨论】:

    猜你喜欢
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2016-03-21
    相关资源
    最近更新 更多