Снимок экрана торгового графика с использованием PhantomJS - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь сделать снимок экрана виджета графика Торгового представления на моем сервере, подобный следующему:

https://jsfiddle.net/exatjd8w/

Я не настолько знаком с PhantomJS, но попробовал несколько способовснимок графика после его загрузки, последняя попытка с использованием следующего кода:

var page = require('webpage').create();
page.open('https://mywebsite.com/chart', 
    function(status) {

        console.log("Status: " + status);

        if (status === "success") {
            page.includeJs('https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js', function() {
                (page.evaluate(function() {
                  // jQuery is loaded, now manipulate the DOM
                      console.log('Status: jQuery is loaded, now manipulate the DOM');
                       var date = new Date(),
                           time = date.getTime()
                       $('#main-widget-frame-container iframe').on('load', function() {
                          console.log('iframe loaded, now take snapshot')
                          page.render('screenshot_' + time + '.png')
                       })
                }))
            })
        }
    }
);

К сожалению, все еще не может сделать это правильно, так как приведенный выше код работает вечно без результатов.

Любойидеи, предложения?

Заранее спасибо.

1 Ответ

0 голосов
/ 11 марта 2019

PhantomJS больше не поддерживается и имеет несколько проблем, которые могут вызвать это. Я бы порекомендовал перейти на Puppeteer, который имеет действительно хороший API, использует Google Chrome (без головы) и активно поддерживается командой chrome:

https://github.com/GoogleChrome/puppeteer

...