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.