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.