Voglio essere in grado di leggere una schermata di un sito web, e sto cercando di usare phantomjs e ASP. Ho provato con page. render che salva una istantanea di un file. Funziona come applicazione console, ma non quando io lo chiamo da un gestore di asp. E 'probabilmente per i permessi dei file, dal momento che le applicazioni più semplici (come hello. js) funzionano bene. Questo va bene, la mia preferenza sarebbe di non scrivere in un file, ma per affrontare i byte e restituire un'immagine direttamente dal gestore. Io sono un po 'perso su come farlo. Ho notato un metodo chiamato page. renderBase64, ma non so come usarlo. Attualmente sto usando un IHttpHandler. Vi è una domanda simile qui, ma quella persona eventualy caduto phantomjs. Mi piace l'aspetto di essa e desidera continuare a utilizzare, se possibile. Esecuzione Phantomjs utilizzando C per afferrare un'istantanea di webpageI hanno un piccolo progetto di divertente in corso proprio ora che consiste nel prelievo di una parte di una pagina web, il caricamento in PhantomJS, il superamento di un grumo di dati ad esso, di scattare una foto della pagina, e la visualizzazione quell'immagine in un report RDLC. Ci sono come un bagillion diversi modi per ottenere questo, in modo che il sotto è una prova di hacker di concept. Il primo, stiamo andando ad avere bisogno è molto semplice pagina web con i seguenti elementi: un elemento del modulo con i dati di input nascosto che verrà utilizzato per spostare i dati dalla prima applicazione alla pagina di stub. Altri due ingressi altezza e larghezza, che vengono utilizzati semplicemente per mostrare argomento della riga di comando passa alla Phantom. Un pulsante che può essere utilizzata per attivare una funzione JavaScript che a sua volta redige pagina. Speriamo che la sua evidente che il nostro metodo Javascript init () in my. js, semplicemente buttare tutto nel div contenitore per la visualizzazione. L'elemento successivo abbiamo bisogno, spostando lo stack, è il nostro corridore Javascript che passeremo a Phantom, calci tutto questo processo fuori. Prendere nota della chiamata filesystem per stumpage. html questo potrebbe essere passato in, ma, ho pensato che mostra ad una chiamata file system potrebbe essere utile a qualcuno. Iniziamo il nostro metodo C impostando il percorso Phantom (nota: si potrebbe aggiungere Phantom al percorso, passa in modo non ci sono const magici, ecc). Poi abbiamo bisogno di configurare gli argomenti della riga di comando per Phantom: Il percorso relativo al nostro file JavaScript corridore dall'alto. L'altezza della pagina. La larghezza della pagina. Continuare con la creazione di un ambiente di processo per Phantom reindirizzando standard In, Out errore amplificatore che consentirà l'interazione con Phantom. Le due impostazioni di processo finali sono per evitare una finestra al momento del lancio del processo e la disabilitazione di Shell esecuzione (vedi documentazione MSDN per i dettagli su Shell Execution) Con Phantom attivo e funzionante possiamo prendere un riferimento al flusso di input standard reindirizzato, serializzare i nostri dati su per il nostro processo di Phantom. Chiusura del flusso di ingresso attiverà valutazione pagina oltre a Phantom. AVVERTENZA va notato che una lettura di stdin al fantasma 1.9.7 è una chiamata di blocco. Tuttavia, vi è una richiesta di funzionalità per la 2.0 che renderà questo asincrona per impostazione predefinita. Se si sta utilizzando questa tecnica si vuole bloccare difensiva sul stdin letto nel caso in cui le cose cambiano in futuro. Il passo finale è quello di agganciare i byte da stdout fare in modo di chiamare il metodo WaitForExit del processo avviene dopo si prende un riferimento al stdout. L'ordinamento farà sì che si leggere tutti i contenuti del stdout. Infine, convertire la stringa in un array di byte e ritorno. Come ho osservato in premessa, si potrebbe aggiungere l'array di byte per un insieme di dati, quindi mappare un elemento Immagine di un RDLC al dataset, dando contenuto dell'immagine dinamica per i rapporti. Si potrebbe potenzialmente utilizzare questa tecnica nei test di integrazione per garantire che le posizioni di elementi della pagina non si sono spostati. O anche come una semplice tecnica di archiviazione per raschiare e salvare lo stato di un sito web.
Comments
Post a Comment