C# WebBrowser document.body.InnerHtml是否返回空?
有一个页面,我想获取它的主体,用于读取输入区域,并通过C#中的GetAttribute和SetAttribute更改它们的值。这样做没有问题,但是 当我通过以下方式调用主体时,不会返回任何内容(我指的是空字符串):C# WebBrowser document.body.InnerHtml是否返回空?,c#,html,webbrowser-control,innerhtml,innertext,C#,Html,Webbrowser Control,Innerhtml,Innertext,有一个页面,我想获取它的主体,用于读取输入区域,并通过C#中的GetAttribute和SetAttribute更改它们的值。这样做没有问题,但是 当我通过以下方式调用主体时,不会返回任何内容(我指的是空字符串): webBrowser1.Document.Body.InnerText 或者 这就是我无法访问任何输入字段的原因。 我在webbrowser组件中看到了网页,但InnerText和InnerHtml都没有返回。这是一个保存的银行weppage在本地运行 那么,运行SetAttri
webBrowser1.Document.Body.InnerText
或者
这就是我无法访问任何输入字段的原因。
我在webbrowser组件中看到了网页,但InnerText和InnerHtml都没有返回。这是一个保存的银行weppage在本地运行
那么,运行SetAttribute、GetAttribute或InvokeMember时,如何读取body?您需要获取输入元素,然后才能获取或设置文本:
HtmlElementCollection elements = currentBrowser.Document.GetElementsByTagName("INPUT");
foreach (HtmlElement element in elements)
{
//to get the text use : string value = element.GetAttribute("value");
//to set the text use : elemet.InnerText = "something";
}
但不要忘记,通过上面的代码,您可以获得所有输入元素,要搜索特定元素,您可以检查其id或名称,如网页中所示:例如:
if (element.Name.ToLower().Contains("email"))
//do work
是否等待页面完全加载?何时调用webBrowser1.Document.Body.InnerText。在webbrowser控件中加载页面后立即?是的,完全加载。我怎么不知道,但问题解决了。也许我错过了什么。我只得到框架标签。然后我尝试通过代码访问每个框架:webBrowser1.Document.Window.frames[I].Document.Body.InnerHtml等等works@AliCAKIL,出于好奇,这个答案是如何解决你的问题的?
if (element.Name.ToLower().Contains("email"))
//do work