Доступ в значениях IFrame и SetAttribute

0

Обычно я могу получить доступ к тэгам html, и я могу установить их значения через код, что-то вроде;

HtmlElementCollection coll = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement curElement in coll)
{
  if (curElement.GetAttribute("name").ToString() == "login")
  {
    curElement.SetAttribute("Value", "123456789"); 
  }
}

Но если область ввода html существует в теге iframe, этот код не работал,

И я изменил строку:

var coll = webBrowser1.Document.GetElementsByTagName("input");

в

var coll = webBrowser1.Document.Window.Frames[0].Document.GetElementsByTagName("iframe")

Но он все еще не работал. Пожалуйста помоги. Я не могу преодолеть эту проблему с прошлой недели

  • 0
    Что значит "не работает"? Любая информация об ошибке?
  • 0
    Нет ошибок, я имею в виду, он не может установить атрибут поля ввода. Но я решил проблему с ответом Адама Вальпиэда
Показать ещё 1 комментарий
Теги:
iframe
webbrowser-control

1 ответ

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 и хотя бы один элемент ввода в дочернем документе.

  • 0
    Спасибо Адам, это работает очень хорошо. Вы сохранили мой проект

Ещё вопросы

Сообщество Overcoder
Наверх
Меню