PhantomJS একটি headless browser যা JavaScript API ব্যবহার করে ওয়েব পেজের স্ক্রিনশট নেওয়া, পেজ রেন্ডারিং, ফর্ম সাবমিশন, এবং অন্যান্য ব্রাউজিং কার্যক্রম অটোমেট করতে সক্ষম। এটি GUI ছাড়া, কম্পিউটার রিসোর্সের কম ব্যবহার করে ব্রাউজার অপারেশন করতে সহায়তা করে, এবং বিশেষ করে ওয়েব স্ক্র্যাপিং, টেস্টিং এবং অটোমেশন প্রজেক্টে ব্যবহার করা হয়। PhantomJS JavaScript কোড দিয়ে ওয়েব পেজের বিভিন্ন উপাদান (যেমন ফর্ম ফিল্ড, বাটন ক্লিক) নিয়ন্ত্রণ এবং স্বয়ংক্রিয়ভাবে কার্যক্রম সম্পন্ন করতে সাহায্য করে।
Input Fields এর জন্য Automation
PhantomJS দিয়ে input fields (যেমন text fields, radio buttons, checkboxes, এবং অন্যান্য form elements) এর জন্য automation বা autofill করা সম্ভব। এতে ব্যবহারকারীর কাছ থেকে ডেটা ইনপুট নেওয়া, পেজে সাবমিট করা এবং পেজের রেসপন্স বা ফলাফল পরীক্ষা করা সহজ হয়।
PhantomJS দিয়ে Input Fields এর Automation করা:
এখানে PhantomJS দিয়ে input fields automate করার জন্য একটি উদাহরণ দেওয়া হয়েছে যেখানে একটি text field, radio button, এবং submit button ব্যবহার করা হয়েছে:
Step 1: PhantomJS Script তৈরি করা
var page = require('webpage').create();
// URL লোড করা
page.open('http://example.com/login', function(status) {
if (status !== 'success') {
console.log('Unable to load the page');
phantom.exit();
} else {
// ফর্ম ফিল্ডে ডেটা ইনপুট করা
page.evaluate(function() {
// Text input field এ ডেটা ইনপুট করা
document.querySelector('input[name="username"]').value = 'testuser';
document.querySelector('input[name="password"]').value = 'password123';
// Radio button নির্বাচন করা
document.querySelector('input[type="radio"][value="male"]').checked = true;
// Checkbox নির্বাচন করা
document.querySelector('input[type="checkbox"][name="remember"]').checked = true;
// Submit বাটনে ক্লিক করা
document.querySelector('button[type="submit"]').click();
});
// পেজের সাবমিশনের পর কিছু সময় অপেক্ষা করা
window.setTimeout(function() {
console.log('Form submitted');
phantom.exit();
}, 2000);
}
});
Explanation:
page.open():- প্রথমে, PhantomJS ব্যবহার করে একটি ওয়েব পেজ লোড করা হয়।
page.evaluate():- PhantomJS এর evaluate() ফাংশন পেজের DOM এ কোড চালানোর জন্য ব্যবহার করা হয়। এটি পেজের ভেতরে থাকা HTML উপাদানগুলিতে পরিবর্তন আনার জন্য ব্যবহৃত হয়।
- Input Fields এ ডেটা ইনপুট:
document.querySelector()ব্যবহার করে input fields চিহ্নিত করা হয় এবং.valueএর মাধ্যমে টেক্সট ইনপুট দেওয়া হয়।- Radio button এর জন্য
checkedপ্রপার্টি ব্যবহার করা হয় এবং checkbox এর জন্যও একইভাবেcheckedপ্রপার্টি ব্যবহার করা হয়।
- Submit Button ক্লিক:
- Submit button কে
click()মেথড ব্যবহার করে ক্লিক করা হয়।
- Submit button কে
- Form Submit করার পর অপেক্ষা:
- setTimeout() ব্যবহার করে পেজের সাবমিশনের পরে কিছু সময় অপেক্ষা করা হয়।
Step 2: PhantomJS স্ক্রিপ্ট চালানো
এই স্ক্রিপ্টটি চালাতে হলে আপনাকে PhantomJS ইনস্টল করা থাকতে হবে। ইনস্টলেশন শেষে, এই স্ক্রিপ্টটি চালানোর জন্য কমান্ড লাইন ব্যবহার করতে হবে:
phantomjs script.js
Step 3: Output
এই স্ক্রিপ্ট চালানোর পর PhantomJS পেজটি লোড করবে, ইনপুট ফিল্ডে ডেটা পাঠাবে, রেডিও বাটন এবং চেকবক্স সিলেক্ট করবে এবং submit button ক্লিক করবে। পরবর্তীতে PhantomJS স্ক্রিপ্টটি সাবমিশনের পরে পেজের রেসপন্স পেতে বা পরবর্তী পদক্ষেপগুলি অনুসরণ করতে প্রস্তুত থাকবে।
Advantages of PhantomJS for Input Fields Automation:
- No Need for GUI: PhantomJS একটি headless browser, তাই এটি গ্রাফিকাল ইউজার ইন্টারফেস ছাড়াই কাজ করে। এটি কম্পিউটারের রিসোর্সের ব্যবহার কমিয়ে দেয় এবং স্ক্রিপ্টিং দ্রুততর করে তোলে।
- Scriptable Interaction: PhantomJS দিয়ে আপনি ওয়েব পেজের সঙ্গে ইন্টারঅ্যাক্ট করতে পারবেন। ইনপুট ফিল্ড, বাটন ক্লিক, ফর্ম সাবমিশন সব কিছুই JavaScript এর মাধ্যমে স্বয়ংক্রিয়ভাবে করা সম্ভব।
- Headless Testing: PhantomJS ব্যবহার করে আপনি headless testing করতে পারেন, যা ওয়েব অ্যাপ্লিকেশন টেস্ট করার জন্য খুবই কার্যকরী। এটি কোনো ব্রাউজারের GUI ছাড়াই কাজ করে, এবং ওয়েব পেজের কার্যকলাপ পরীক্ষা করতে সক্ষম।
- Multiple Form Handling: PhantomJS দিয়ে আপনি একাধিক ফর্মের জন্য স্বয়ংক্রিয় ইনপুট প্রদান এবং সাবমিশন করতে পারবেন।
PhantomJS এর সাহায্যে input fields automation একটি সহজ এবং কার্যকরী প্রক্রিয়া হয়ে ওঠে। আপনি ফর্ম ভ্যালিডেশন, রেডিও বাটন, চেকবক্স, এবং অন্যান্য ইনপুট ফিল্ডের উপর কার্যক্রম সঞ্চালন করতে পারেন, যা ওয়েব অ্যাপ্লিকেশন টেস্টিং এবং স্ক্রিপ্টিংয়ে গুরুত্বপূর্ণ ভূমিকা পালন করে। PhantomJS ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশনের ইনপুট এবং সাবমিশন প্রক্রিয়াগুলিকে দ্রুত এবং কার্যকরভাবে অটোমেট করতে পারবেন।
Read more