如何获取iframe的元素?

时间:2009-12-28 14:42:42

标签: c#

我想使用网络浏览器自动化自动化页面。

在iframe中,只有一个iframe在运行时值。

当我尝试获取i frame的值时,它只返回iframe而不是整页html,

我想点击i frame的href。

请帮我解决这个问题我是代码。

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

3 个答案:

答案 0 :(得分:0)

你可能想要

HtmlDocument.Body

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

身体是一个 HtmlElement,其中包含InnerHtmlInnerText的属性,如果您要查找IFrame文档中返回的数据。

有关HtmlElement的更多信息,请参阅以下内容 http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement.aspx

另外,你确定要投射到HtmlDocument吗?看看MSDN,看起来像GetElementById()应该返回一个HtmlElement。

答案 1 :(得分:0)

尝试

HtmlDocument.contentWindow.body

我不知道c#和你在做什么(我现在主要是PHP人)但是在我看来你是在向HTMLDocument类型转换IFrame元素吗?这可能是错误的,因为IFrame元素与body不同。这种铸造真的有必要吗?也许将其转换为HTMLElement而不是?

答案 2 :(得分:0)

如果目标网站上有jQuery,请尝试以下方法:

browser.Document.InvokeScript("eval", new object[] { "$(\"#iframe_id\").contents().find('#element').html())" });