我想使用网络浏览器自动化自动化页面。
在iframe中,只有一个iframe在运行时值。
当我尝试获取i frame的值时,它只返回iframe而不是整页html,
我想点击i frame的href。
请帮我解决这个问题我是代码。
HtmlDocument dd = (HtmlDocument)loginBrowser.Document.GetElementById("UIFrame");
答案 0 :(得分: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。
答案 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())" });