javascript - 在 PhantomJS 中获取页面的标题

标签 javascript phantomjs

我正在试验 PhantomJS。这是一个没有按预期工作的简单代码。运行后,我可以在控制台中看到 successfoo 但文档的标题是一个空字符串。

var page = require('webpage').create();

page.open('https://www.google.com', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    console.log("foo");
    console.log(document.title);
    phantom.exit();
  }
});

最佳答案

获取标题的简单方法是使用 page.title .

document.title 没有给你任何东西的原因是 PhantomJS 有两个不同的上下文。只有页面上下文(在 page.evaluate() 内部)可以访问 DOM,因此可以访问 document 对象。外部上下文也有一个 document 对象,但它什么都不做,因此只是一个虚拟对象。 window 也是如此。

所以获取页面标题的另一种方法是使用:

console.log(page.evaluate(function(){
    return document.title;
}));

关于javascript - 在 PhantomJS 中获取页面的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335824/

相关文章:

javascript - 在另一个html文件和JS中包含一个html文件

javascript - jQuery.get 无法在 github 站点上使用 https(甚至请求同一域)

javascript - 用jade传递变量时如何检查对象是否存在

python - 在 osx 上使用 python 打开/关闭 wifi

javascript - 使用 Webpack 从 SASS 导入 CSS-url

javascript - 使用带有 phantom JS 驱动程序的 Selenium 提取相对链接

javascript - 使用 casperjs 通过 AJAX 发送 POST/PUT

ajax - CasperJS 点击事件具有 AJAX 调用

jasmine - PhantomJS "Can' t 找到变量 : require"when using PhantomJasmine

javascript - react : setState on Child is updating parent's state on array property types