PhantomJS - Metodi

PhantomJS è una piattaforma per aiutare a eseguire JavaScript senza un browser. Per fare ciò, vengono utilizzati i seguenti metodi, che aiutano ad aggiungere il cookie, eliminare, cancellare, uscire dallo script, iniettare JS, ecc.

Discuteremo di più su questi metodi PhantomJS e sulla loro sintassi in questo capitolo. Metodi simili cioèaddcookie, injectjs esiste nel modulo della pagina web, che sarà discusso nei capitoli successivi.

PhantomJS espone i seguenti metodi che possono aiutarci a eseguire JavaScript senza il browser:

  • addCookie
  • clearCookie
  • deleteCookie
  • Exit
  • InjectJS

Vediamo ora di comprendere questi metodi in dettaglio con esempi.

addCookie

Il metodo addcookie viene utilizzato per aggiungere cookie e memorizzare nei dati. È simile a come lo memorizza il browser. Richiede un singolo argomento che è un oggetto con tutte le proprietà dei cookie e la sintassi per esso appare come mostrato di seguito -

Sintassi

La sua sintassi è la seguente:

phantom.addCookie ({ 
   "name" : "cookie_name",  
   "value" : "cookie_value", 
   "domain" : "localhost" 
});

Il nome, il valore, il dominio sono proprietà obbligatorie da aggiungere alla funzione addcookie. Se una qualsiasi di questa proprietà manca negli oggetti cookie, questo metodo fallirà.

  • name - specifica il nome del cookie.

  • value - specifica il valore del cookie da utilizzare.

  • domain - dominio a cui verrà applicato il cookie.

Esempio

Ecco un esempio di addcookie metodo.

var page = require('webpage').create(),url = 'http://localhost/tasks/a.html'; 
page.open(url, function(status) { 
   if (status === 'success') {     
      phantom.addCookie({   //add name cookie1 with value = 1 
         name: 'cookie1', 
         value: '1', 
         domain: 'localhost' 
      }); 
      phantom.addCookie({   // add cookie2 with value 2 
         name: 'cookie2', 
         value: '2', 
         domain: 'localhost' 
      }); 
      phantom.addCookie({   // add cookie3 with value 3 
         name: 'cookie3', 
         value: '3', 
         domain: 'localhost' 
      }); 
      console.log('Added 3 cookies'); 
      console.log('Total cookies :'+phantom.cookies.length);  
      
      // will output the total cookies added to the url.    
   } else { 
      console.error('Cannot open file'); 
      phantom.exit(1); 
   } 
});

Esempio

a.html

<html>
   <head>
      <title>Welcome to phantomjs test page</title>
   </head>
   
   <body>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
   </body>
</html>

Il programma sopra genera quanto segue output.

Added 3 cookies 
Total cookies :3

I commenti sul codice sono autoesplicativi.

biscotti puliti

Questo metodo consente di eliminare tutti i cookie.

Sintassi

La sua sintassi è la seguente:

phantom.clearCookies();

Questo concetto funziona in modo simile all'eliminazione dei cookie del browser selezionando nel menu del browser.

Esempio

Ecco un esempio di clearCookies metodo.

var page = require('webpage').create(),url = 'http://localhost/tasks/a.html'; 
page.open(url, function(status) { 
   if (status === 'success') {     
      phantom.addCookie({   //add name cookie1 with value = 1 
         name: 'cookie1', 
         value: '1', 
         domain: 'localhost' 
      }); 
      phantom.addCookie({   // add cookie2 with value 2 
         name: 'cookie2', 
         value: '2', 
         domain: 'localhost' 
      }); 
      phantom.addCookie({   // add cookie3 with value 3 
         name: 'cookie3', 
         value: '3', 
         domain: 'localhost' 
      }); 
      console.log('Added 3 cookies'); 
      console.log('Total cookies :'+phantom.cookies.length); 
      phantom.clearCookies(); 
      console.log(
         'After clearcookies method total cookies :' +phantom.cookies.length); 
      
      phantom.exit();     
   } else { 
      console.error('Cannot open file'); 
      phantom.exit(1); 
   } 
});

a.html

<html>
   <head>
      <title>Welcome to phantomjs test page</title>
   </head>
   
   <body>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
      <h1>This is a test page</h1>
   </body>
</html>

Il programma sopra genera quanto segue output.

Added 3 cookies 
Total cookies :3 
After clearcookies method total cookies :0

deleteCookie

Elimina qualsiasi cookie nel file CookieJarcon una proprietà "name" corrispondente a cookieName. Torneràtrue, se cancellato con successo; altrimentifalse.

Sintassi

La sua sintassi è la seguente:

phantom.deleteCookie(cookiename);

Facci capire addcookie, clearcookies e deletecookie con l'aiuto di un esempio.

Esempio

Ecco un esempio per dimostrare l'uso del metodo deleteCookie:

File: cookie.js

var page = require('webpage').create(),url = 'http://localhost/tasks/a.html'; 
page.open(url, function(status) { 
   if (status === 'success') {     
      phantom.addCookie({   //add name cookie1 with value = 1 
         name: 'cookie1', 
         value: '1', 
         domain: 'localhost' 
      }); 
      phantom.addCookie({   // add cookie2 with value 2 
         name: 'cookie2', 
         value: '2', 
         domain: 'localhost' 
      });
      phantom.addCookie({   // add cookie3 with value 3 
         name: 'cookie3', 
         value: '3', 
         domain: 'localhost' 
      });  
      console.log('Added 3 cookies'); 
      console.log('Total cookies :'+phantom.cookies.length); 
      
      //will output the total cookies added to the url.    
      console.log("Deleting cookie2"); 
      phantom.deleteCookie('cookie2'); 
      
      console.log('Total cookies :'+phantom.cookies.length); 
      phantom.clearCookies();
      
      console.log(
         'After clearcookies method total cookies :' +phantom.cookies.length); 
      phantom.exit(); 
   } else { 
      console.error('Cannot open file'); 
      phantom.exit(1); 
   } 
});

Il programma sopra genera quanto segue output.

phantomjs cookie.js
Added 3 cookies
Total cookies :3
Deleting cookie2
Total cookies :2
After clearcookies method total cookies :0

Uscita

Il metodo phantom.exit uscirà dallo script che aveva avviato. Esce dal programma con il valore di ritorno menzionato. Dà‘0’, se non viene passato alcun valore.

Sintassi

La sua sintassi è la seguente:

phantom.exit(value);

Nel caso in cui non aggiungi phantom.exit, quindi la riga di comando presume che l'esecuzione sia ancora attiva e non verrà completata.

Esempio

Vediamo un esempio per capire l'uso di exit metodo.

console.log('Welcome to phantomJs');  // outputs Welcome to phantomJS 
var a = 1; 
if (a === 1) { 
   console.log('Exit 1'); //outputs Exit 1 
   phantom.exit(); // Code exits. 
} else { 
   console.log('Exit 2'); 
   phantom.exit(1); 
}

Il programma sopra genera quanto segue output.

phantomjs exit.js

Welcome to phantomJs 
Exit 1

Qualsiasi parte di codice dopo phantom.exit non verrà eseguita, poiché phantom.exit è un metodo per terminare lo script.

injectJs

InjectJs viene utilizzato per aggiungere addtionaljsfile in formato fantasma. Se il file non viene trovato nel filedirectory librarypath, quindi la proprietà fantasma (phantom.libraryPath) viene utilizzata come posizione aggiuntiva per tracciare il percorso. Ritornatrue se l'aggiunta del file ha successo altrimenti false in caso di errore, in caso non sia in grado di individuare il file.

Sintassi

La sua sintassi è la seguente:

phantom.injectJs(filename);

Esempio

Esaminiamo il seguente esempio per comprendere l'uso di injectJs.

Filename: inject.js

console.log(“Added file”);

File name: addfile.js

var addfile =  injectJs(inject.js);
console.log(addfile);
phantom.exit();

Produzione

Command - C: \ phantomjs \ bin> phantomjs addfile.js

Added file // coming from inject.js
true

Nell'esempio sopra, addfile.js chiama il file inject.jsutilizzando injectJs. Quando esegui addfile.js, il file console.log presente in inject.js viene mostrato nell'output. Mostra anche true per la variabile addfile poiché il file inject.js è stato aggiunto correttamente.