通常我可以访问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")
但它仍然没有用。请帮忙。自上周以来,我无法克服这个问题
答案 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元素。