javascript - PhantomJS- 默认使用 LocalStorage 打开页面

标签 javascript phantomjs local-storage

我正在使用 PhantomJS在 JavaScript DOM 操作发生后获取网页的生成源。这个网页只有一个 <body>没有别的。

重要:此网页使用浏览器的 localStorage生成页面。

我想在打开页面之前更改 PhantomJS 中的 LocalStorage。

App.js:

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

page.open("https://sample.com")
setTimeout(function(){
    // Where you want to save it    
    page.render("screenshoot.png")  
    // You can access its content using jQuery
    var fbcomments = page.evaluate(function(){
        return $("body").contents().find(".content") 
    }) 
    phantom.exit();
}, 1000)

最佳答案

特定域的 localStorage 仅在您打开该域上的页面时可用。你可以

  1. 在您感兴趣的域上打开一些 URL,
  2. 根据需要更改localStorage
  3. 在同一域中打开您的目标网址。

这看起来像这样:

page.open("https://sample.com/asdfasdf", function(){
    page.evaluate(function(){
        localStorage.setItem("something", "whatever");
    });

    page.open("https://sample.com", function(){
        setTimeout(function(){
            // Where you want to save it    
            page.render("screenshoot.png")  
            // You can access its content using jQuery
            var fbcomments = page.evaluate(function(){
                return $("body").contents().find(".content") 
            }) 
            phantom.exit();
        },1000)
    });    
});

也可以在步骤 1 中不打开完整页面。您也可以使用带有某些 URL 的虚拟页面。

page.setContent("", "https://sample.com"); // doesn't actually open any page

page.evaluate(function(){
    localStorage.setItem("something", "whatever");
});

page.open("https://sample.com", function(){
    setTimeout(function(){
        // Where you want to save it    
        page.render("screenshoot.png")  
        // You can access its content using jQuery
        var fbcomments = page.evaluate(function(){
            return $("body").contents().find(".content") 
        }) 
        phantom.exit();
    }, 1000)
});    

关于javascript - PhantomJS- 默认使用 LocalStorage 打开页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35267191/

相关文章:

javascript - 如何一次性将元素追加到dom中

jasmine - JSOver 与 PhantomJS - 类型错误 : 'null' is not an object

javascript - localStorage.clear();从 PC 清除所有?

javascript - HTML5本地存储保存笔记

javascript - 如何在没有不安全的内联 JavaScript/CSS 代码的情况下使用 React?

javascript - jQuery UI DatePicker 仅显示月份年份

javascript - 无法在Javascript函数中访问span标签的innerHTML

javascript - getBoundingClientRect() 导致 javascript 崩溃?

python - 隐藏 phantomJS 驱动的控制台

android - 从旧的 Cordova 应用程序恢复 localStorage 数据