PhantomJS - Methoden

PhantomJS ist eine Plattform zur Ausführung von JavaScript ohne Browser. Zu diesem Zweck werden die folgenden Methoden verwendet, die beim Hinzufügen des Cookies, Löschen, Löschen, Beenden des Skripts, Injizieren von JS usw. hilfreich sind.

Wir werden in diesem Kapitel mehr über diese PhantomJS-Methoden und ihre Syntax diskutieren. Ähnliche Methoden dhaddcookie, injectjs existiert auf dem Webseitenmodul, das in den folgenden Kapiteln besprochen wird.

PhantomJS stellt die folgenden Methoden zur Verfügung, mit denen wir JavaScript ohne den Browser ausführen können:

  • addCookie
  • clearCookie
  • deleteCookie
  • Exit
  • InjectJS

Lassen Sie uns diese Methoden nun anhand von Beispielen im Detail verstehen.

addCookie

Die addcookie-Methode wird verwendet, um Cookies hinzuzufügen und in den Daten zu speichern. Es ähnelt dem Speichern im Browser. Es wird ein einzelnes Argument benötigt, das ein Objekt mit allen Eigenschaften von Cookies ist, und die Syntax dafür sieht wie folgt aus:

Syntax

Die Syntax lautet wie folgt:

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

Der Name, der Wert und die Domäne sind obligatorische Eigenschaften, die der Funktion addcookie hinzugefügt werden müssen. Wenn eine dieser Eigenschaften in den Cookie-Objekten fehlt, schlägt diese Methode fehl.

  • name - Gibt den Namen des Cookies an.

  • value - Gibt den Wert des zu verwendenden Cookies an.

  • domain - Domain, auf die das Cookie angewendet wird.

Beispiel

Hier ist ein Beispiel für die addcookie Methode.

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); 
   } 
});

Beispiel

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>

Das obige Programm generiert Folgendes output.

Added 3 cookies 
Total cookies :3

Die Codekommentare sind selbsterklärend.

Klare Kekse

Diese Methode ermöglicht das Löschen aller Cookies.

Syntax

Die Syntax lautet wie folgt:

phantom.clearCookies();

Dieses Konzept funktioniert ähnlich wie das Löschen der Browser-Cookies durch Auswahl im Browser-Menü.

Beispiel

Hier ist ein Beispiel für die clearCookies Methode.

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>

Das obige Programm generiert Folgendes output.

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

deleteCookie

Löschen Sie alle Cookies in der CookieJarmit einer 'name'-Eigenschaft, die mit cookieName übereinstimmt. Es wird zurückkehrentrue, wenn erfolgreich gelöscht; Andernfallsfalse.

Syntax

Die Syntax lautet wie folgt:

phantom.deleteCookie(cookiename);

Lass uns verstehen addcookie, clearcookies und deletecookie anhand eines Beispiels.

Beispiel

Hier ist ein Beispiel, um die Verwendung der deleteCookie-Methode zu demonstrieren:

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); 
   } 
});

Das obige Programm generiert Folgendes output.

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

Ausgang

Die Methode phantom.exit beendet das Skript, das sie gestartet hat. Es beendet das Programm mit dem angegebenen Rückgabewert. Es gibt‘0’, wenn kein Wert übergeben wird.

Syntax

Die Syntax lautet wie folgt:

phantom.exit(value);

Falls Sie nicht hinzufügen phantom.exitDann geht die Befehlszeile davon aus, dass die Ausführung noch aktiv ist und nicht abgeschlossen wird.

Beispiel

Schauen wir uns ein Beispiel an, um die Verwendung von zu verstehen exit Methode.

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); 
}

Das obige Programm generiert Folgendes output.

phantomjs exit.js

Welcome to phantomJs 
Exit 1

Code nach phantom.exit wird nicht ausgeführt, da phantom.exit eine Methode zum Beenden des Skripts ist.

injiziert

InjectJs wird zum Hinzufügen verwendet addtionaljsDateien im Phantom. Wenn die Datei nicht in der aktuellen gefunden wirddirectory librarypathAnschließend wird die Phantom-Eigenschaft (phantom.libraryPath) als zusätzlicher Ort zum Verfolgen des Pfads verwendet. Es kehrt zurücktrue Wenn das Hinzufügen der Datei ansonsten erfolgreich ist false Bei einem Fehler, falls die Datei nicht gefunden werden kann.

Syntax

Die Syntax lautet wie folgt:

phantom.injectJs(filename);

Beispiel

Schauen wir uns das folgende Beispiel an, um die Verwendung von zu verstehen injectJs.

Filename: inject.js

console.log(“Added file”);

File name: addfile.js

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

Ausgabe

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

Added file // coming from inject.js
true

Im obigen Beispiel ist addfile.js ruft die Datei auf inject.jsmit Injektionen. Wenn Sie addfile.js ausführen, wird das in insert.js vorhandene console.log in der Ausgabe angezeigt. Es wird auch true für die Variable addfile angezeigt, da die Datei injizieren.js erfolgreich hinzugefügt wurde.