使用JavaScript从Firefox获取原始源代码

6
我正在编写一个程序来验证远程服务器上的网页。它使用Selenium RC在Firefox中运行一系列测试,因此我可以调用任意JavaScript。当出现故障时,我想记录页面生成的HTML。现在获得DOM HTML很容易,但是我很难找到一种方法来获取源代码。谢谢。
我应该重申,我不是在寻找DOM,而是原始未修改的源代码。就像通过右键单击->查看页面源代码所看到的。具体而言,如果
恐惧表格数据
是真正的HTML。调用document.documentElement.outerHTML || document.documentElement.innerHTML和selenium.getHTMLSource()将导致
fear the table data

我目前是通过使用http库进行额外请求来实现这一点的,因此每个页面实际上都会被提取两次:一次使用Selenium,另一次则不使用。此外,我经常注意到,在Firefox中查看页面源代码会有一些延迟,很明显浏览器在幕后做了同样的事情。 - Vitalik Verhovodov
3个回答

2
XHR请求同一页面的资源,并仅检查当前状态的源代码:document.documentElement.outerHTML || document.documentElement.innerHTML

1
然而,我正在寻找原始未修改的HTML源代码。 - Mark
我说:“XHR请求相同页面作为源”。 - Eli Grey
我可能(很有可能)漏掉了什么,但如果页面是动态的,它不一定会重新加载导致错误的相同HTML。 - Mark
那么你想要当前的源代码,我也告诉过你如何获取。 - Eli Grey
感谢您的耐心等待。当我在我的问题中编辑了一个格式不良的HTML示例并进行调用时,我会得到Firefox DOM的返回结果。例如插入的<head> </head>,<tbody>...</tbody>和闭合的</body>。这将导致正确记录错误原因变得困难。您是如何避免这种情况的? - Mark
当前状态的源不是原始页面源代码。 - Meredith

-1

你尝试过像这样简单的东西吗?

document.documentElement.innerHTML;

在Firefox中获取DOM的最低要求。 - Mark

-1

由于您也在使用Selenium,您可以使用selenium.getHTMLSource()。这将返回整个源页面内容。


1
这是我在测试之前的假设。实际上,该调用可能通过document.documentElement.innerHTML; 调用获取DOM的HTML版本。 - Mark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接