【问题标题】:Dumping browser document content using Zombie.js使用 Zombie.js 转储浏览器文档内容
【发布时间】:2015-12-21 22:14:19
【问题描述】:

使用 browser.visit,我正在获取浏览器的页面,如文档中所示。根据浏览器 API,browser.document 返回主窗口的文档。但是,我不确定如何转储(显示)文档的内容。是否有类似 browser.document.toString() 或 browser.document.text() 的方法能够在控制台中打印文档的内容。

谢谢, 索尼

【问题讨论】:

  • 你试过browser.html()吗?
  • 是的,我做到了。但是,它会打印整个 html 内容,对吧?我认为浏览器包含页面的所有细节,例如状态、内容等,而文档是仅存储 dom 结构的子集。我错了吗?我正在尝试使用 browser.document 仅打印 dom 结构,而不是整个 html。

标签: zombie.js


【解决方案1】:

你想要的大概是:

browser.document.innerHTML 

【讨论】:

  • 顺便说一句,这似乎不适用于当前版本的 Zombie.js,但 browser.document.documentElement.innerHTML 可以;)
  • 未定义未定义未定义未定义
  • 因此 probably 关键字:)
【解决方案2】:

有一个browser.text(selector, context?)。 选择器是针对文档正文评估的 CSS 选择器。 Context 是可选的第二个参数,CSS 选择器根据作为上下文给出的元素进行评估。

你可以说类似browser.text('body') 来获取正文中的文本。

【讨论】:

  • browser.text('document') 不起作用。我认为文档是浏览器的选择器。我正在尝试通过 browser.document 访问“dom 结构”。 - 索尼
  • @sony browser.text('body') 将选择 html 页面/文档的正文标记中的任何文本。我还没有尝试过,但是您应该可以使用 browser.text('html') 来选择 headers + body 中的文本。
【解决方案3】:

我是在寻找同一个问题的答案时来到这里的。 我可能会迟到,但请尝试使用

Browser.visit(url, function(error, browser){
    fs.appendFileSync('index.html', browser.html());
})

记得把错误检查放在这里做更好的处理,但应该给你基本的 HTML 文档。

【讨论】:

    【解决方案4】:

    如果它不一定是 HTML(比如你发现自己通过 Zombie 拉 XML 或 JSON,由于复杂、正当的原因......),你可以这样访问它:

    browser.document._childNodes[0]._nodeValue
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2015-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多