在IE或Chrome中使用开发者工具,我获得了一个框架的HTML代码。没问题。
现在,我想用C#应用程序来做。我在VS2010中有System.Windows.Form.WebBrowser。我尝试获取Frame的Html代码。
public static HtmlElementCollection GetElementsByTagNameForFrame(this WebBrowser wb,
string tag, string idFrame)
{
return wb.Document.Window.Frames[idFrame].Document.GetElementsByTagName(tag);
}
但是我收到错误UnauthorizedAccessException。
我再次尝试Read HTML code from iframe using Webbrowser C#,但我得到同样的错误。
string content = doc.Window.Frames["injected-iframe"].WindowFrameElement.InnerText;
有什么建议吗?
答案 0 :(得分:0)
您没有写它,但我认为iFrame包含来自不同域的内容。现代浏览器包括一些反XSS机制,就像这样,为攻击者提供更多的工作。
在这种情况下,最简单的方法是检查iFrame中显示的内容,然后使用WebClient手动下载内部的网页。如果它是某种成员区域,您可能需要复制cookie。所以,只需获取iframe的src属性并使用WebClient.DownloadString
下载此页面。