Domanda Eseguire javascript in python

Helplease

Utente Silver
29 Dicembre 2019
116
32
6
82
Ciao a tutti, sto provando ad eseguire uno script js in python con il modulo stpyv8 (successore di v8 di google), ma la libreria non riconosce alcuni oggetti javascript come window e self. Qualcuno sa se esiste una libreria che li implementi? (non intendo librerie come selenium, che automatizzano il browser, ma librerie che simulino una specie di browser in python).
Grazie
 
stpyv8 è un wrapper attorno a v8, non il suo successore. è normale che non esistano oggetti come window, vengono popolati dal browser. Sostanzialmente hai due alternative, dipende da cosa devi farci:
  • Definisci tu gli oggetti che ti servono da python manualmente, incluso un oggetto window con un set minimo di elementi
  • Usi un browser completo tramite automation classica come selenium
Non puoi ottenere tutto quello che fa un browser senza browser, equivale a reimplementarlo.
 
  • Mi piace
Reazioni: Helplease
Grazie mille per la risposta. Dalla via volevo chiederti anche un'altra cosa: nella console degli strumenti per sviluppatori, che cos'è quel menu a tendina con su scritto top?

IMG_20221231_182244__01-min.jpg

Mi sembra di aver capito che siano dei context JavaScript, ma volevo sapere come si creano, che cosa "rappresentano" nella pagina html e che cosa cambia esattamente nello spostarsi tra uno e l'altro.
Grazie ancora.
 
Da quello che so top è solo il nome che chrome dà al frame principale della pagina, eventuali iframe avrebbero altri contesti js ma sarebbero comunque annidati sotto top. Fuori da esso dovrebbero esserci solo script del browser. Per il tuo scopo non devi preoccuparti di questo, è completamente trasparente a javascript e alle pagine web.
 
  • Mi piace
Reazioni: Helplease