Windows Forms WebBrowser управления и кадров

Я пытаюсь создать часть программного обеспечения для более или менее автоматизации заполнения форм на веб-странице - и я решил использовать элемент управления WebBrowser в System.Windows.Forms. Это отлично работает, и я могу легко манипулировать дом через webbrowser.Document и так далее. Однако, к сожалению, сайт, на котором я занимаюсь автоматизацией, имеет загрузку файла, которая выполняется внутри iframe - и именно здесь я застрял, я просто не могу понять, как управлять элементами внутри DOM фрейм.

В идеале я хотел бы сделать что-то вроде:

HtmlElement iframe = browser.Document.GetElementById("iframe_id");
iframe.InnerDocument.GetElementById("file_upload_input").SetAttribute("value", "myfile.txt");

а затем отправьте форму внутри iframe, конечно, - однако нет InnerDocument атрибут on HtmlElement насколько я могу видеть, ни один тип, который я нашел, что я могу бросить HtmlElement чтобы я мог получить доступ к внутреннему DOM.

как это делается?

1 ответов


вместо этого попробуйте использовать коллекцию "frames". От MSDN:

элемент iframe функционирует как документ внутри документа или как плавающая рама. Коллекция frames обеспечивает доступ к содержимому фрейм. используйте коллекцию frames для чтение или запись элементов, содержащихся в фрейм. например, синтаксис доступ к стилю backgroundColor объект body в iframe:

sColor = документ.периодах("sFrameName").документ.тело.стиль.свойство backgroundColor;