【问题标题】:How can I access the DOM of another HTML page, to test DOM manipulation functions from QUnit如何访问另一个 HTML 页面的 DOM,以测试来自 QUnit 的 DOM 操作函数
【发布时间】:2013-10-04 14:12:07
【问题描述】:

我正在用 QUNIT 为一个 JavaScript 项目编写测试用例。我已经测试过返回值的函数。

但是代码库中有一些函数可以访问 DOM 并用它做一些事情。我想访问由这些函数更改的 HTML 页面的 DOM,以便检查它们是否正常工作。

我尝试了document.urlwindow.open,但是当我尝试在该页面上执行document.getElementByTagName("script") 时,它给了我null。这意味着我无法访问其他页面的 DOM。

【问题讨论】:

  • 所以2个页面同时打开?喜欢在 2 个不同的窗口或选项卡中?
  • 请注意,在浏览器中,HTML 页面的 JavaScript DOM 操作仅在 HTML 页面在浏览器窗口中打开时才会持续。我不明白你想要达到什么目的。
  • 您想在服务器端还是客户端执行此操作?以及如何使用 AJAX?
  • @Yuriy Galanter.只要 html 不包含在我的页面中(因此不会呈现)并且我能够从我的 html 页面中的 javascript 访问它的 dom,任何东西都可以工作。
  • @PaulD.Waite 所以我在 QUNIT 中为一个 javascript 项目编写测试用例。所以到目前为止,我已经完成了返回值的函数,并且是 parseQueryParams 等基本函数。但是有代码库中的函数访问 DOM 并用它做事。那么我将如何测试这些情况,因为我无权访问主代码函数试图访问的 DOM。这就是我想要实现的目标。

标签: javascript html unit-testing dom qunit


【解决方案1】:

一个想法是在 iframe 中加载其他页面。然后,您可以使用 window.parent 从 iframe 访问父页面。

【讨论】:

  • 谢谢@TGH。但问题是我在我的 html 页面中使用 QUNIT 编写测试用例,所以我无法在我的 html 页面的 iframe 中呈现新的 html 页面,因为我的 html 页面必须显示测试结果和添加带有 html src 的 iframe 页面没有意义,因为我必须访问它而不显示在我的 DOM 中。谢谢
【解决方案2】:

【讨论】:

  • 嘿,回答太晚了。我已经完成了这个项目。谢谢 neways。
  • 没问题。堆栈溢出的美妙之处在于答案永远不会太晚。其他人的问题的潜在答案已经在这里等着他们了。
猜你喜欢
  • 2019-10-10
  • 1970-01-01
  • 2010-09-25
  • 2011-05-30
相关资源
最近更新 更多