2009-12-28 6 views
0

Я хочу автоматизировать страницу с помощью автоматизации веб-браузера.Как получить элемент iframe?

Внутри iframe есть только iframe во время выполнения.

, когда я пытаюсь получить значение я кадр она возвращает только IFrame не всю страницу HTML,

Я хочу щелкнуть HREF двутавровых кадра.

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

HtmlDocument dd = (HtmlDocument)loginBrowser.Document.GetElementById("UIFrame"); 

ответ

0

Попробуйте

HtmlDocument.contentWindow.body 

Я понятия не имею, о C# и то, что вы делаете (я PHP человек в основном в эти дни), но он смотрит на меня, как вы бросаете элемент IFrame к типу HTMLDocument ? Это может быть неверно, поскольку элемент IFrame не совпадает с body. Действительно ли это кастинг? Может быть, вместо этого он будет заменен на HTMLElement?

0

Вы, вероятно, хотите

HtmlDocument.Body 

http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument_members.aspx

Тело является HtmlElement, который имеет свойства для InnerHtml и InnerText, если вы хотите взглянуть на данные, возвращаемые в документе IFrame ,

Смотрите следующее для получения дополнительной информации HtmlElement http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement.aspx

Кроме того, вы уверены, что вы хотите быть литья в HtmlDocument? Глядя на MSDN, похоже, что GetElementById() должен возвращать HtmlElement.

+0

Я попытался это, но его не показывает содержимое фрейма –

0

Если JQuery доступен в целевом сайте, то попробуйте следующее:

browser.Document.InvokeScript("eval", new object[] { "$(\"#iframe_id\").contents().find('#element').html())" }); 
Смежные вопросы