有没有办法通过WatiN获取页面源和IE评论? WatiN暴露了DocumentElement.outerHTML,但它包含一个没有注释的文档。
编辑当我们通过IE中的View Source查看IE评论时,我们会看到类似的内容:
<!--[if IE]>
<p>Welcome to Internet Explorer.</p>
<![endif]-->
但是当我们通过文档对象查看实际呈现的HTML时,我们只看到:
<p>Welcome to Internet Explorer.</p>
即。 IE注释不包含在渲染文档中,但通常的HTML注释是。
答案 0 :(得分:1)
将其添加到代码顶部:
using SHDocVw;
并使用它来获取实际的HTML内容
InternetExplorer internetExplorer = (InternetExplorer)browser.InternetExplorer;
string htmlContent = internetExplorer.Document.documentElement.OuterHTML;
祝你好运。
修改强>
我似乎误解了你的想法。编辑帖子后,我尝试了一些东西。在Opera和Chrome中打开了一个包含<!--[if IE]-->
的网站,然后在控制台中运行此命令:document.head.innerHTML
。两个浏览器都给出了[if IE]
的输出,但是当在IE中尝试它时,似乎在页面呈现后,IE将删除所有这些。
必须有一些方法可以实现这一目标,但如果没有使用System.Net
或其他内容下载整个页面然后阅读其内容,我找不到解决方案。
编辑2: 我找到了另一种方法,但不确定你是否喜欢这个解决方案。看看这段代码:http://pastebin.com/4EvLSuEL
进行ajax调用以加载页面内容,然后将结果粘贴到隐藏的textarea
中。之后,通过使用WatiN的ElementWithTag
,我们将textarea
值转换为字符串myContent
。
希望它对你有所帮助,这是我能做到的最好。