获取完整的实际html页面源代码,包括框架集

时间:2012-09-13 08:10:20

标签: javascript html dom vbscript qtp

对于我们的功能测试自动化,我们将QTP与Webtest插件一起使用。我可以控制DOM(但不是很简单),可以使用VBScript和部分Javascript来找到解决方案。

每当我们在测试期间遇到错误时,我想在那一刻捕获完整的HTML页面源。之后,当我们检查报告中的错误时,我们可以看到发生了什么以及当时DOM的样子。

因此,我寻找能够捕捉这个来源的可能性。通常我是用

做的
htmlSource = browser("micClass:=Browser").page("micClass:=Page").Object.documentElement.outerHTML

htmlSource = browser("micClass:=Browser").page("micClass:=Page").Object.getElementsByTagName("html")(0).innerHTML

不幸的是,这只会捕获框架集和框架的标签的全部内容,但不会捕获框架中的实际内容。 (这里是经典框架,而非IFrame)

现在我想要一种实时捕获完整DOM源的方法,包括框架集中的内容。我喜欢它们的顺序和位置,就像源代码出现在IE Developer Tool的HTML视图中一样。

有没有人知道如何管理它?

1 个答案:

答案 0 :(得分:1)

如果你真的需要在页面的HTML中内嵌框架的源代码,我知道实现这一点的唯一方法就是为每个元素递归地构建HTML。这可能是很多工作,因为在转到子元素(并正确插入)之前,您必须从innerHTML中删除outerHTML的每个元素。

如果你可以使用框架的HTML在外面,你可以使用Page.ChildObjects()和描述micclass=Frame,然后使用你用于页面的相同机制(frames(i).Object.documentElement.outerHTML)。 / p>

请注意,您将获得页面下的所有帧,因此即使帧嵌套在DOM中,也无需获取Frame测试对象的子对象。