পেজের নির্দিষ্ট এলিমেন্টের স্ক্রিনশট

পেজ রেন্ডারিং এবং স্ক্রিনশট তোলা - ফ্যান্টমজেএস (PhantomJS) - Web Development

227

PhantomJS হল একটি headless ব্রাউজার, অর্থাৎ এটি একটি পূর্ণাঙ্গ ব্রাউজার হিসেবে কাজ করে, তবে এটি GUI (Graphical User Interface) ছাড়াই চলে। PhantomJS ব্রাউজারটি মূলত JavaScript এবং WebKit প্রযুক্তি ব্যবহার করে তৈরি করা হয়েছে। এটি automated testing, web scraping, এবং screen capture এর মতো কাজগুলির জন্য ব্যবহৃত হয়। PhantomJS এর মাধ্যমে আপনি ওয়েব পেজের নির্দিষ্ট এলিমেন্টের screenshots নিতে পারেন যা একাধিক ক্ষেত্রে উপকারী হতে পারে, যেমন ওয়েব ডিজাইন যাচাই, UI টেস্টিং, বা সাইটের স্ক্রিনশট তৈরি করা।

PhantomJS দিয়ে পেজের নির্দিষ্ট এলিমেন্টের স্ক্রিনশট

PhantomJS ব্যবহার করে আপনি পুরো পেজের স্ক্রিনশট নিতে পারেন অথবা পেজের নির্দিষ্ট এলিমেন্টের স্ক্রিনশটও নিতে পারেন। এখানে PhantomJS দিয়ে একটি নির্দিষ্ট এলিমেন্টের স্ক্রিনশট নেওয়ার পদ্ধতি বর্ণনা করা হলো।

প্রথমে PhantomJS ইনস্টল করা:

আপনি যদি PhantomJS ইনস্টল না করে থাকেন, তবে এটি আপনার সিস্টেমে ইনস্টল করতে হবে। PhantomJS ইনস্টল করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

Windows:

  1. Download the latest version from the PhantomJS Download page.
  2. Extract the archive and add the phantomjs executable to your system's PATH environment variable.

macOS/Linux:

If you have Homebrew installed on macOS or Linux, you can install PhantomJS by running the following command:

brew install phantomjs

Or on Linux, you can use:

sudo apt-get install phantomjs

PhantomJS Script Example:

এখানে একটি PhantomJS স্ক্রিপ্টের উদাহরণ দেওয়া হয়েছে, যা একটি ওয়েব পেজের নির্দিষ্ট এলিমেন্টের স্ক্রিনশট নিবে:

PhantomJS স্ক্রিপ্ট:

var page = require('webpage').create(); // Create a new webpage instance
var url = 'https://example.com'; // URL of the page
var elementSelector = '#specific-element'; // CSS selector for the element

page.open(url, function(status) {
    if (status === "success") {
        // Wait for the page to fully load
        page.evaluate(function(selector) {
            var element = document.querySelector(selector);
            if (element) {
                // Get the bounding rectangle of the element
                var rect = element.getBoundingClientRect();
                return {
                    x: rect.left,
                    y: rect.top,
                    width: rect.width,
                    height: rect.height
                };
            }
        }, elementSelector, function(rect) {
            if (rect) {
                // Take a screenshot of the element using its dimensions
                page.clipRect = rect;
                page.render('element-screenshot.png'); // Save screenshot as PNG
                console.log('Screenshot of element saved as "element-screenshot.png".');
            } else {
                console.log('Element not found.');
            }
            phantom.exit(); // Exit PhantomJS
        });
    } else {
        console.log('Page failed to load.');
        phantom.exit();
    }
});

Explanation:

  • page.open(url, callback): এটি পেজটি খুলে এবং পেজের লোড হওয়া পরীক্ষা করে।
  • page.evaluate(function): এটি JavaScript কোড পেজের মধ্যে কার্যকর করে, যা elementSelector দিয়ে নির্দিষ্ট এলিমেন্টের bounding rectangle (position এবং size) বের করে।
  • page.clipRect: এই প্রপার্টি ব্যবহার করে আপনি পেজের নির্দিষ্ট এলিমেন্টের জন্য স্ক্রিনশট সীমাবদ্ধ করতে পারেন।
  • page.render(): এটি স্ক্রিনশট গ্রহণ করে এবং সেই স্ক্রিনশট একটি ফাইল হিসেবে সংরক্ষণ করে (এখানে element-screenshot.png নামে)।

স্ক্রিপ্ট রান করার জন্য কমান্ড:

একবার স্ক্রিপ্ট তৈরি হয়ে গেলে, আপনি PhantomJS দিয়ে স্ক্রিপ্টটি রান করতে পারেন। এটি করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

phantomjs screenshot.js

এখানে, screenshot.js হল আপনার PhantomJS স্ক্রিপ্টের নাম।

PhantomJS এর সাহায্যে আরও কিছু সাধারণ স্ক্রিনশট অপশন:

  1. পুরো পেজের স্ক্রিনশট:

    page.render('fullpage-screenshot.png');
    
  2. পেজের স্ক্রিনশট একটি নির্দিষ্ট ডাইমেনশনে:

    page.viewportSize = { width: 1280, height: 1024 };
    page.render('screenshot.png');
    
  3. সাইটের স্ক্রিনশট নিতে ও স্ক্রল করার জন্য:

    var page = require('webpage').create();
    page.open('https://example.com', function() {
        page.scrollPosition = { top: 0, left: 0 };
        page.render('screenshot.png');
        phantom.exit();
    });
    

PhantomJS স্ক্রিপ্টের সাহায্যে আরও কিছু কার্যকলাপ:

  • Testing: PhantomJS এর মাধ্যমে আপনি ওয়েবসাইটের ইউজার ইন্টারফেসের বিভিন্ন অংশ পরীক্ষা করতে পারেন।
  • Automation: PhantomJS ব্যবহার করে আপনি ওয়েব স্ক্র্যাপিং বা বিভিন্ন ওয়েব অ্যাপ্লিকেশন টেস্টিং অটোমেট করতে পারেন।
  • Web Scraping: PhantomJS ওয়েব স্ক্র্যাপিং টুল হিসাবে কাজ করতে পারে, যেটি ডেটা বের করতে ব্যবহার করা হয়।

PhantomJS ব্যবহার করে আপনি কোনো ওয়েব পেজের নির্দিষ্ট এলিমেন্টের স্ক্রিনশট নিতে পারেন। এটি সাধারণত UI testing, web scraping, বা screenshot generation এর জন্য ব্যবহৃত হয়। PhantomJS স্ক্রিপ্টের মাধ্যমে আপনি ওয়েব পেজের যে কোনো এলিমেন্টের ছবি তুলতে এবং সেই ছবি সংরক্ষণ করতে পারেন। এর মাধ্যমে automated testing এবং visual regression testing সহজে করতে পারবেন, যা ওয়েব ডেভেলপমেন্ট প্রক্রিয়াকে আরও দক্ষ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...