Javascript 使用Chrome 59以编程方式创建给定网站的完整页面屏幕截图

Javascript 使用Chrome 59以编程方式创建给定网站的完整页面屏幕截图,javascript,node.js,selenium,Javascript,Node.js,Selenium,我想能够创建一个特定网站的拉页屏幕截图,但该网站可能比屏幕上可以看到的更大。如果我使用Selenium Webdriver,有没有一种方法可以在新Chrome 59和最新ChromeServer的帮助下以编程方式完成这项工作?没有,很遗憾,这是不可能的。您考虑过使用它吗 以下是其中一个: 不,它对我不起作用。并希望从chrome浏览器中获取屏幕截图。我不确定chrome browser的新版本是否有某种解决方案。Dream.js使用的是基于chrome的Electron——请看:SO的期望是,用

我想能够创建一个特定网站的拉页屏幕截图,但该网站可能比屏幕上可以看到的更大。如果我使用Selenium Webdriver,有没有一种方法可以在新Chrome 59和最新ChromeServer的帮助下以编程方式完成这项工作?

没有,很遗憾,这是不可能的。

您考虑过使用它吗

以下是其中一个:


不,它对我不起作用。并希望从chrome浏览器中获取屏幕截图。我不确定chrome browser的新版本是否有某种解决方案。Dream.js使用的是基于chrome的Electron——请看:SO的期望是,用户提出问题时,不仅会研究回答自己的问题,还会分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参阅:@JeffC这是一个非常有效的问题,需要回答。如果是重复的帖子,只需链接正确的东西。@JohnLeidegren我从来没有说过这不是一个有效的问题,但有规则和期望。没有链接,没有引用,没有代码。对于你的销售代表,你应该知道这一点。“给我代码”的问题也不是如此。@JeffC我知道,以前的社区也不是这样。我们过去只靠解决问题而发迹。@JohnLeidegren我喜欢解决问题,但我发现我花了很多时间在猜测他们的意图后想出了一个定义不清的问题的解决方案,而答案是没有用的,因为他们已经尝试过这种方法,或者因为X或其他原因而不起作用。如果人们需要SO社区的帮助,他们需要花费大量的精力来研究自己的问题。这对他们来说更好,因为他们有机会自己学习,解决自己的问题。这对我们来说也更好,因为我们可以专注于一个明确定义的问题。
var Nightmare = require('nightmare'),
    vo = require('vo');

function * run() {
    var nightmare = new Nightmare({
        show: false,
        width: 1024,
        height: 768
    });
    var dimensions = yield nightmare.goto('http://www.gmail.com')
        .wait('body')
        .evaluate(function() {
            var body = document.querySelector('body');
            return { 
                height: body.scrollHeight,
                width:body.scrollWidth
            }
        });

    console.dir(dimensions);
    yield nightmare.viewport(dimensions.width, dimensions.height)
        .wait(1000)
        .screenshot(require('path')
            .join(__dirname, 'gmail.png'));

    yield nightmare.end();
}   

vo(run)(function() {
    console.log('done');
});