WebBrowser document.body.InnerHtml возвращает пустой?

Есть страница, я хочу получить ее тело для чтения областей ввода и изменения их значений с помощью GetAttribute и SetAttribute в С#. Это не проблема сделать, но,

Ничего не возвращается (я имею в виду пустую строку), когда я вызываю тело через:

webBrowser1.Document.Body.InnerText 

or,

webBrowser1.Document.Body.InnerHtml

Вот почему я не могу получить доступ ни к одному полю ввода. Я вижу веб-страницу в компоненте веб-браузера, но ни InnerText, ни InnerHtml не возвращаются. Это сохраненная веб-страница банка, работающая на локальном компьютере.

Итак, как я могу прочитать тело для запуска SetAttribute или GetAttribute или InvokeMember чего-то еще?


person Ali CAKIL    schedule 01.03.2014    source источник
comment
Вы ждете, пока страница полностью загрузится? stackoverflow.com/questions/20957182/   -  person L.B    schedule 01.03.2014
comment
Когда вы вызываете webBrowser1.Document.Body.InnerText. Сразу после загрузки страницы в элементе управления веб-браузером?   -  person Nps    schedule 01.03.2014
comment
Да, полностью загружен. Как я не знаю, но проблема решена. Возможно я что-то пропустил. Я получаю только теги Frame. Затем я попытался получить доступ к каждому кадру по коду: webBrowser1.Document.Window.Frames[i].Document.Body.InnerHtml И это работает   -  person Ali CAKIL    schedule 01.03.2014


Ответы (1)


Вам нужно получить элемент ввода, а затем получить или установить текст:

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";

        }

но не забывайте, что с помощью приведенного выше кода вы получаете все элементы ввода, для поиска определенного элемента вы можете проверить его идентификатор или имя, как на веб-странице: например:

 if (element.Name.ToLower().Contains("email"))
         //do work
person Karam Najjar    schedule 01.03.2014
comment
@AliCAKIL, из любопытства, как этот ответ решил вашу проблему? - person L.B; 02.03.2014