-1

PhantomJS possède la pire documentation de tous les temps. Comment puis-je exécuter un fichier .js simple sur un fichier html spécifique? Si je cours phantomjs, je peux utiliser l'interface REPL exécuter require. Comment puis-je l'exécuter de telle sorte que window. est défini comme si un fichier html spécifique était la cible?PhantomJS exécutant un script sur un fichier HTML spécifique?

Je veux faire quelque chose comme

var $ = require('jquery'); 
$("div").attr('class'); 

et obtenir les listes de classes ... contre ce ..

<html> 
    <head><title>Hello World</title></title> 
    <body> 
    <div class="foo bar baz"> </div> 
    </body> 
</html> 

Répondre

-2

Vous ne devez pas utiliser jquery pour cela. Exemple de travail:

var classes = [].map.call(document.querySelectorAll("div"), 
         function(el){ return el.className; }); 
2

Basé hors du numerous examples:

'use strict'; 

var page = require('webpage').create(); 

page.open('your-file.html', function (status) { 
    if (status !== 'success') { 
     console.log('Unable to load file'); 
     phantom.exit(1); 
    } 

    page.includeJs('https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js', function() { 
     page.onConsoleMessage = function (message) { 
      console.log(message); 
     }; 

     page.evaluate(function() { 
      console.log($('div').attr('class')); 
     }); 

     phantom.exit(); 
    }); 
}); 

Je n'ai jamais utilisé PhantomJS avant, et qui a pris 10 minutes. Regarde plus fort!

+0

Sauf que vous utilisez .includeJs ce qui n'est pas CommonJS, c'est ce que j'essaie de tester ... Vous voulez savoir comment obtenir le 'require ('module')' dedans? –

+1

@EvanCarroll Injecter requireJS, puis utiliser require pour requérir jQuery. 'requre' n'est pas disponible dans le contexte de la page et jQuery n'a pas de sens en dehors du contexte de la page. –