Ho provato:
Potrei farlo localmente ma non potrei fare screenshot di altri siti web basati su angularjs.
Essere in grado di prendere uno screenshot di qualsiasi app di Angularjs che include jquery e angular sulla pagina. Ogni singolo sito qui: http://builtwith.angularjs.org/ dovrebbe apparire come se lo avessi caricato nel mio browser.
Deve essere in grado di ottenere lo screenshot tramite il terminale in modo che possa essere eseguito in un processo in background come un lavoratore o qualcosa del genere.
Un server casuale (o qualunque cosa dovrebbe essere in grado di andare su un sito Web fuori sito e prendere uno screenshot di esso.)
Basta prendere un url che ospiterà inevitabilmente un’app angularjs e produrrà ciò che ti aspetteresti di vedere nel tuo browser.
Non è necessario essere phantomjs o node-webshot.
A partire dalla scorsa notte è così che lo sto facendo.
Ho del lavoro da fare su questa soluzione.
Questa sembra essere una potenziale soluzione, ma ho scoperto che la maggior parte di queste soluzioni richiede l’apertura di un browser e l’acquisizione dello screenshot rispetto a un browser headless come phantomjs.
Sto continuando lo sviluppo di una soluzione pronta per la produzione per questo su github. https://github.com/clouddueling/angular-snapshot
Se prendi questo codice e lo compili con node-webkit.app sarai in grado di eseguire un server screenshot.
Utilizza il browser per testare la tua applicazione in tutti i browser senza doverli installare, inclusi browser per dispositivi mobili, telefoni diversi, tablet, ecc.
C’è il supporto per test automatici e schermate Selenium. Il test locale è supportato, non è necessario alcun URL pubblico.
L’ API screenshots è disponibile per la configurazione degli screenshot necessari, Screenshooter è uno strumento per generare screenshot di BrowserStack dalla riga di comando.
C’è un periodo di prova per questo in quanto è un prodotto commerciale, ma è molto ben fatto e vale ogni centesimo. Puoi iscriverti solo per un mese. Ho usato personalmente e lo consiglio vivamente.
Hai provato wkhtmltopdf ? Viene fornito con uno strumento chiamato wkhtmltoimage . Utilizza QtWebKit (una porta Qt del motore di rendering WebKit) per eseguire il rendering di una pagina Web e converte il risultato in PDF o in formato immagine a scelta, il tutto eseguito sul lato server.
Perché usa WebKit, rende tutto (immagini, css e anche javascript) proprio come fa un browser moderno. È ansible perfezionare i parametri come ad esempio modificare il periodo di tolleranza dell’esecuzione di JavaScript.
Nel mio caso d’uso, i risultati sono stati molto soddisfacenti e sono quasi identici a quelli che renderanno i browser.
Ecco un elenco di opzioni di comando:
Name: wkhtmltoimage 0.11.0 rc2 Synopsis: wkhtmltoimage [OPTIONS]...
Anche se personalmente non l’ho provato personalmente, ho visto il servizio distribuito in produzione che utilizza schermate usando Webdriver di Selenium.
tutto è fatto in background, quindi penso che soddisfi le tue esigenze.
Probabilmente questo aiuterà https://bitbucket.org/vodolaz095/site-shooter Questa è l’applicazione nodejs + phantomjs per fare screenshot del sito
Hai bisogno di un servizio di tier gratuito Heroku per eseguire questo.
A proposito, puoi provare questa applicazione – https://pageshooter.herokuapp.com penso che possa fare screenshot di siti angularjs
Node-Webshot utilizza PhantomJS che a sua volta utilizza QtWebkit che non funziona con AngularJS.
Maggiori informazioni: https://github.com/angular/angular.js/issues/2985
Suggerimento. Assicurati che il PhantomJS che hai incluso in Node-Webshot sia assolutamente l’ultima versione. In caso contrario, sostituisci il PhantomJS con l’ultima versione e attacca che sia stato risolto.
Se hai accesso alle opzioni della riga di comando di PhantomJS, puoi provarne alcuni qui: https://github.com/ariya/phantomjs/wiki/API-Reference
Quelli che si occupano in particolare della campana sono:
–ignore-ssl-errors = true
–local-to-remote-url-access = true
–web-security = false