PhantomJS - Metody

PhantomJS to platforma pomagająca w wykonywaniu JavaScript bez przeglądarki. W tym celu wykorzystuje się następujące metody, które pomagają w dodaniu pliku cookie, usunięciu, wyczyszczeniu, opuszczeniu skryptu, wstrzyknięciu JS itp.

W tym rozdziale omówimy więcej metod PhantomJS i ich składni. Podobne metody tjaddcookie, injectjs istnieje w module strony internetowej, co zostanie omówione w kolejnych rozdziałach.

PhantomJS ujawnia następujące metody, które mogą nam pomóc w wykonywaniu JavaScript bez przeglądarki -

  • addCookie
  • clearCookie
  • deleteCookie
  • Exit
  • InjectJS

Rozumiemy teraz szczegółowo te metody z przykładami.

addCookie

Metoda addcookie służy do dodawania plików cookie i przechowywania danych. Jest podobny do sposobu, w jaki przeglądarka go przechowuje. Pobiera pojedynczy argument, czyli obiekt ze wszystkimi właściwościami plików cookie, a jego składnia wygląda tak, jak pokazano poniżej -

Składnia

Jego składnia jest następująca -

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

Nazwa, wartość, domena są obowiązkowymi właściwościami, które mają zostać dodane do funkcji addcookie. Jeśli w obiektach plików cookie brakuje którejkolwiek z tych właściwości, ta metoda zakończy się niepowodzeniem.

  • name - określa nazwę pliku cookie.

  • value - określa wartość używanego pliku cookie.

  • domain - domena, do której będzie stosowany plik cookie.

Przykład

Oto przykład addcookie metoda.

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

Przykład

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>

Powyższy program generuje następujące dane output.

Added 3 cookies 
Total cookies :3

Komentarze do kodu są oczywiste.

Usuń pliki cookie

Ta metoda umożliwia usunięcie wszystkich plików cookie.

Składnia

Jego składnia jest następująca -

phantom.clearCookies();

Ta koncepcja działa podobnie do usuwania plików cookie przeglądarki poprzez wybranie w menu przeglądarki.

Przykład

Oto przykład clearCookies metoda.

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>

Powyższy program generuje następujące dane output.

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

deleteCookie

Usuń wszystkie pliki cookie w CookieJarz właściwością „name” pasującą do cookieName. To wrócitrue, jeśli pomyślnie usunięto; Inaczejfalse.

Składnia

Jego składnia jest następująca -

phantom.deleteCookie(cookiename);

Pozwól nam zrozumieć addcookie, clearcookies i deletecookie z pomocą przykładu.

Przykład

Oto przykład demonstrujący użycie metody 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); 
   } 
});

Powyższy program generuje następujące dane output.

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

Wyjście

Metoda phantom.exit zamknie skrypt, który została uruchomiona. Wychodzi z programu ze wspomnianą wartością zwracaną. To daje‘0’, jeśli nie ma przekazanej wartości.

Składnia

Jego składnia jest następująca -

phantom.exit(value);

Jeśli nie dodasz phantom.exit, to wiersz poleceń zakłada, że ​​wykonanie jest nadal włączone i nie zostanie ukończone.

Przykład

Spójrzmy na przykład, aby zrozumieć użycie exit metoda.

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

Powyższy program generuje następujące dane output.

phantomjs exit.js

Welcome to phantomJs 
Exit 1

Żaden fragment kodu po phantom.exit nie zostanie wykonany, ponieważ phantom.exit jest metodą kończącą skrypt.

injectJs

InjectJs służy do dodawania addtionaljspliki w phantom. Jeśli plik nie zostanie znaleziony w pliku currentdirectory librarypath, wówczas właściwość phantom (phantom.libraryPath) jest używana jako dodatkowe miejsce do śledzenia ścieżki. Wracatrue jeśli dodawanie pliku powiedzie się, w przeciwnym razie false w przypadku niepowodzenia, w przypadku, gdy nie jest w stanie zlokalizować pliku.

Składnia

Jego składnia jest następująca -

phantom.injectJs(filename);

Przykład

Przyjrzyjmy się poniższemu przykładowi, aby zrozumieć użycie injectJs.

Filename: inject.js

console.log(“Added file”);

File name: addfile.js

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

Wynik

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

Added file // coming from inject.js
true

W powyższym przykładzie addfile.js wywołuje plik inject.jsprzy użyciu injectJs. Po wykonaniu addfile.js w danych wyjściowych jest wyświetlany plik console.log obecny w inject.js. Pokazuje również prawdę dla zmiennej addfile, ponieważ plik inject.js został pomyślnie dodany.