Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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# WebBrowser document.body.InnerHtml是否返回空?_C#_Html_Webbrowser Control_Innerhtml_Innertext - Fatal编程技术网

C# WebBrowser document.body.InnerHtml是否返回空?

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

有一个页面,我想获取它的主体,用于读取输入区域,并通过C#中的GetAttribute和SetAttribute更改它们的值。这样做没有问题,但是

当我通过以下方式调用主体时,不会返回任何内容(我指的是空字符串):

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