PhantomJS - Phương thức
PhantomJS là một nền tảng giúp thực thi JavaScript mà không cần trình duyệt. Để làm điều đó, các phương pháp sau được sử dụng, giúp Thêm Cookie, Xóa, Xóa, Thoát Tập lệnh, Chèn JS, v.v.
Chúng ta sẽ thảo luận thêm về các phương thức PhantomJS này và cú pháp của chúng trong chương này. Các phương pháp tương tự, tức làaddcookie, injectjs tồn tại trên mô-đun trang web, sẽ được thảo luận trong các chương tiếp theo.
PhantomJS tiết lộ các phương pháp sau có thể giúp chúng tôi thực thi JavaScript mà không cần trình duyệt:
- addCookie
- clearCookie
- deleteCookie
- Exit
- InjectJS
Bây giờ chúng ta hãy hiểu chi tiết các phương pháp này với các ví dụ.
addCookie
Phương thức addcookie được sử dụng để thêm cookie và lưu trữ trong dữ liệu. Nó tương tự như cách trình duyệt lưu trữ nó. Nó nhận một đối số duy nhất là một đối tượng có tất cả các thuộc tính của cookie và cú pháp của nó trông giống như hình dưới đây:
Cú pháp
Cú pháp của nó như sau:
phantom.addCookie ({
"name" : "cookie_name",
"value" : "cookie_value",
"domain" : "localhost"
});
Tên, giá trị, miền là các thuộc tính bắt buộc phải thêm vào hàm addcookie. Nếu thiếu bất kỳ thuộc tính nào trong các đối tượng cookie, phương pháp này sẽ không thành công.
name - chỉ định tên của cookie.
value - chỉ định giá trị của cookie sẽ được sử dụng.
domain - miền mà cookie sẽ được áp dụng.
Thí dụ
Đây là một ví dụ về addcookie phương pháp.
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);
}
});
Thí dụ
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>
Chương trình trên tạo ra như sau output.
Added 3 cookies
Total cookies :3
Các nhận xét mã là tự giải thích.
xoá cookies
Phương pháp này cho phép xóa tất cả các cookie.
Cú pháp
Cú pháp của nó như sau:
phantom.clearCookies();
Khái niệm này hoạt động tương tự như việc xóa cookie của trình duyệt bằng cách chọn trong menu của trình duyệt.
Thí dụ
Đây là một ví dụ về clearCookies phương pháp.
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>
Chương trình trên tạo ra như sau output.
Added 3 cookies
Total cookies :3
After clearcookies method total cookies :0
deleteCookie
Xóa bất kỳ cookie nào trong CookieJarvới thuộc tính 'name' phù hợp với cookieName. Nó sẽ trở lạitrue, nếu xóa thành công; nếu không thìfalse.
Cú pháp
Cú pháp của nó như sau:
phantom.deleteCookie(cookiename);
Cho chúng tôi hiểu addcookie, clearcookies và deletecookie với sự giúp đỡ của một ví dụ.
Thí dụ
Đây là một ví dụ để chứng minh việc sử dụng phương thức 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);
}
});
Chương trình trên tạo ra như sau output.
phantomjs cookie.js
Added 3 cookies
Total cookies :3
Deleting cookie2
Total cookies :2
After clearcookies method total cookies :0
Lối ra
Phương thức phantom.exit sẽ thoát khỏi tập lệnh mà nó đã bắt đầu. Nó thoát khỏi chương trình với giá trị trả về được đề cập. Nó cho‘0’, nếu không có giá trị nào được chuyển.
Cú pháp
Cú pháp của nó như sau:
phantom.exit(value);
Trong trường hợp bạn không thêm phantom.exit, sau đó dòng lệnh giả định rằng việc thực thi vẫn đang diễn ra và sẽ không hoàn tất.
Thí dụ
Chúng ta hãy xem một ví dụ để hiểu việc sử dụng exit phương pháp.
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);
}
Chương trình trên tạo ra như sau output.
phantomjs exit.js
Welcome to phantomJs
Exit 1
Bất kỳ đoạn mã nào sau phantom.exit sẽ không được thực thi, vì phantom.exit là một phương thức để kết thúc tập lệnh.
tiêmJs
InjectJs được sử dụng để thêm addtionaljscác tập tin trong ma. Nếu tệp không được tìm thấy trong hiện tạidirectory librarypath, sau đó thuộc tính phantom (phantom.libraryPath) được sử dụng như một nơi bổ sung để theo dõi đường dẫn. Nó trở lạitrue nếu việc bổ sung tệp thành công nếu không false không thành công, trong trường hợp nó không thể định vị tệp.
Cú pháp
Cú pháp của nó như sau:
phantom.injectJs(filename);
Thí dụ
Chúng ta hãy xem ví dụ sau để hiểu việc sử dụng injectJs.
Filename: inject.js
console.log(“Added file”);
File name: addfile.js
var addfile = injectJs(inject.js);
console.log(addfile);
phantom.exit();
Đầu ra
Command - C: \ phantomjs \ bin> phantomjs addfile.js
Added file // coming from inject.js
true
Trong ví dụ trên, addfile.js gọi tập tin inject.jssử dụng tiêmJs. Khi bạn thực thi addfile.js, console.log hiện diện trong injection.js được hiển thị trong đầu ra. Nó cũng hiển thị đúng cho biến addfile vì tệp tiêm.js đã được thêm thành công.