ক্ষমতা এবং ChromeOptions

ক্ষমতা হল বিকল্প যা আপনি একটি ChromeDriver সেশন কাস্টমাইজ এবং কনফিগার করতে ব্যবহার করতে পারেন। এই পৃষ্ঠাটি সমস্ত ChromeDriver সমর্থিত ক্ষমতা এবং সেগুলি কীভাবে ব্যবহার করতে হয় তা নথিভুক্ত করে৷

WebDriver ভাষা API গুলি ChromeDriver-এ ক্ষমতাগুলি পাস করার উপায় প্রদান করে৷ সঠিক প্রক্রিয়াটি ভাষার দ্বারা পৃথক হয়, তবে বেশিরভাগ ভাষা নিম্নলিখিত প্রক্রিয়াগুলির একটি বা উভয় ব্যবহার করে:

  1. ChromeOptions ক্লাস ব্যবহার করুন. এটি জাভা, পাইথন ইত্যাদি দ্বারা সমর্থিত।
  2. DesiredCapabilities ক্লাস ব্যবহার করুন। এটি পাইথন, রুবি, ইত্যাদি দ্বারা সমর্থিত৷ এটি জাভাতেও উপলব্ধ, জাভাতে এর ব্যবহার অবমূল্যায়িত৷

ChromeOptions ক্লাস ব্যবহার করে

আপনি ChromeOptions এর একটি উদাহরণ তৈরি করতে পারেন, যাতে ChromeDriver-নির্দিষ্ট ক্ষমতা সেট করার সুবিধাজনক পদ্ধতি রয়েছে। তারপরে আপনি ChromeDriver কনস্ট্রাক্টরে ChromeOptions অবজেক্টটি পাস করতে পারেন:

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);

সেলেনিয়াম সংস্করণ 3.6.0 থেকে, জাভাতে ChromeOptions ক্লাস Capabilities ইন্টারফেসও প্রয়োগ করে, যা আপনাকে ChromeDriver-এর জন্য নির্দিষ্ট নয় এমন অন্যান্য WebDriver ক্ষমতা নির্দিষ্ট করতে দেয়।

ChromeOptions options = new ChromeOptions();

// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);

// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);

Desired Capabilities ব্যবহার করুন

DesiredCapabilities ব্যবহার করার জন্য, আপনাকে সক্ষমতার নাম এবং এটির মূল্যের ধরণ জানতে হবে। সম্পূর্ণ তালিকা দেখুন.

পাইথন

caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)

রুবি

caps = Selenium::WebDriver::Remote::Capabilities.chrome(
  "goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps

সাধারণ ব্যবহারের ক্ষেত্রে

একটি কাস্টম প্রোফাইল ব্যবহার করুন

ডিফল্টরূপে, ChromeDriver প্রতিটি সেশনের জন্য একটি নতুন অস্থায়ী প্রোফাইল তৈরি করে। আপনি বিশেষ পছন্দগুলি সেট করতে চাইতে পারেন বা শুধুমাত্র একটি কাস্টম প্রোফাইল সম্পূর্ণভাবে ব্যবহার করতে পারেন, যাকে ব্যবহারকারী ডেটা ডিরেক্টরিও বলা হয়।

অস্থায়ী প্রোফাইল ব্যবহার করলে, আপনি Chrome শুরু হওয়ার পরে আবেদন করার জন্য পছন্দগুলি নির্দিষ্ট করতে chrome.prefs ক্ষমতা ব্যবহার করতে পারেন৷ কাস্টম প্রোফাইলের জন্য, আপনি user-data-dir ক্রোম কমান্ড-লাইন সুইচ ব্যবহার করে ক্রোমকে কোন প্রোফাইল ব্যবহার করবেন তা জানাতে পারেন:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

কিছু নতুন ডিরেক্টরিতে সেট করা user-data-dir স্যুইচ ব্যবহার করে কমান্ড-লাইনে বা ChromeDriver-এর সাহায্যে Chrome চালিয়ে আপনার নিজস্ব কাস্টম প্রোফাইল তৈরি করুন।

যদি পথটি বিদ্যমান না থাকে, Chrome নির্দিষ্ট স্থানে একটি নতুন প্রোফাইল তৈরি করে। আপনি তারপর প্রোফাইল সেটিংস পরিবর্তন করতে পারেন, এবং ChromeDriver ভবিষ্যতে প্রোফাইলটি ব্যবহার করতে পারে৷ ক্রোম কি প্রোফাইল ব্যবহার করছে তা দেখতে ব্রাউজারে chrome://version খুলুন।

Chrome সর্বাধিক শুরু করুন

start-maximized সুইচ ব্যবহার করে ক্রোম সর্বাধিক শুরু করুন:

ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");

একটি অ-মানক অবস্থানে একটি Chrome এক্সিকিউটেবল ব্যবহার করুন৷

ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");

ডায়ালগ উইন্ডো ব্লক করুন

ডিফল্টরূপে, ChromeDriver পপ-আপ উইন্ডোর অনুমতি দেওয়ার জন্য Chrome-কে কনফিগার করে। আপনি যদি পপ-আপগুলি ব্লক করতে চান এবং ChromeDriver দ্বারা নিয়ন্ত্রিত না হলে স্বাভাবিক Chrome আচরণ পুনরুদ্ধার করতে চান, নিম্নলিখিতগুলি করুন:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
     Arrays.asList("disable-popup-blocking"));

ডাউনলোড ডিরেক্টরি সেট করুন

নিম্নলিখিত কোডটি একটি নির্দিষ্ট ডিরেক্টরিতে ফাইল ডাউনলোড করতে Chrome কনফিগার করতে ব্যবহার করা যেতে পারে। যাইহোক, সচেতন হওয়ার জন্য বেশ কয়েকটি সতর্কতা রয়েছে:

  • Chrome ডাউনলোডের জন্য নির্দিষ্ট ডিরেক্টরি ব্যবহার করার অনুমতি দেয় না। বিশেষ করে, আপনি ডেস্কটপ ফোল্ডারটিকে ডাউনলোড ডিরেক্টরি হিসাবে ব্যবহার করতে পারবেন না। লিনাক্সে, আপনি ডাউনলোডের জন্য হোম ডিরেক্টরি ব্যবহার করতে পারবেন না। নিষিদ্ধ ডিরেক্টরিগুলির সঠিক তালিকা পরিবর্তন সাপেক্ষে, তাই আমরা সুপারিশ করেছি যে আপনি একটি অনন্য ডিরেক্টরি ব্যবহার করুন যার সিস্টেমে কোন বিশেষ অর্থ নেই।
  • ChromeDriver স্বয়ংক্রিয়ভাবে ডাউনলোড সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না। আপনি driver.quit() খুব তাড়াতাড়ি কল করলে, ডাউনলোড শেষ হওয়ার আগেই Chrome বন্ধ হয়ে যেতে পারে।
  • সেরা ফলাফলের জন্য, সম্পূর্ণ পাথ ব্যবহার করুন, কারণ আপেক্ষিক পাথ সবসময় কাজ করে না।
  • উইন্ডোজে, \` as path separators. /` উইন্ডোজে নির্ভরযোগ্য নয়।
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);

স্বীকৃত ক্ষমতা

ChromeDriver দ্বারা গৃহীত মানক ক্ষমতার জন্য সেলেনিয়াম ডকুমেন্টেশন এবং W3C ওয়েবড্রাইভার স্ট্যান্ডার্ড পড়ুন। এখানে, আমরা Chrome-নির্দিষ্ট ক্ষমতা তালিকাভুক্ত করি।

ChromeOptions অবজেক্ট

বেশিরভাগ Chrome-নির্দিষ্ট ক্ষমতা ChromeOptions অবজেক্টের মাধ্যমে প্রকাশ করা হয়। কিছু ভাষায়, তারা ChromeOptions ক্লাস দ্বারা প্রয়োগ করা হয়। অন্যান্য ভাষায়, সেগুলি নির্বাচিত ক্ষমতাগুলিতে goog:chromeOptions অভিধানের অধীনে সংরক্ষণ করা হয়৷

নাম টাইপ ডিফল্ট বর্ণনা
args স্ট্রিং তালিকা Chrome শুরু করার সময় ব্যবহার করার জন্য কমান্ড-লাইন আর্গুমেন্টের তালিকা। সংশ্লিষ্ট মান সহ আর্গুমেন্টগুলিকে '=' চিহ্ন দ্বারা পৃথক করা উচিত (যেমন, ['start-maximized', 'user-data-dir=/tmp/temp_profile'])। Chrome আর্গুমেন্টের একটি তালিকা দেখুন।
binary স্ট্রিং ব্যবহারের জন্য এক্সিকিউটেবল ক্রোমের পাথ৷
macOS X-এ, এটি প্রকৃত বাইনারি হওয়া উচিত, শুধু অ্যাপ নয়, যেমন /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
extensions স্ট্রিং তালিকা স্টার্টআপে ইনস্টল করার জন্য Chrome এক্সটেনশনগুলির একটি তালিকা৷ তালিকার প্রতিটি আইটেম একটি বেস-64 এনকোডেড প্যাক করা Chrome এক্সটেনশন (.crx) হওয়া উচিত
localState অভিধান পছন্দের নাম এবং এর মান সমন্বিত প্রতিটি এন্ট্রি সহ একটি অভিধান। এই পছন্দগুলি ব্যবহারকারীর ডেটা ফোল্ডারে স্থানীয় রাজ্য ফাইলে প্রয়োগ করা হয়।
prefs অভিধান পছন্দের নাম এবং এর মান সমন্বিত প্রতিটি এন্ট্রি সহ একটি অভিধান। এই পছন্দগুলি শুধুমাত্র ব্যবহার করা ব্যবহারকারী প্রোফাইলে প্রয়োগ করা হয়। উদাহরণের জন্য Chrome এর ব্যবহারকারী ডেটা ডিরেক্টরিতে 'পছন্দগুলি' ফাইলটি দেখুন৷
detach বুলিয়ান মিথ্যা মিথ্যা হলে, সেশনটি প্রস্থান করা হোক না কেন, ChromeDriver মারা গেলে Chrome বন্ধ হয়ে যায়।
সত্য হলে, সেশন প্রস্থান বা বন্ধ হলেই Chrome প্রস্থান করবে। যদি সত্য হয় এবং সেশনটি প্রস্থান না হয়, ChromeDriver চলমান ক্রোম ইনস্ট্যান্স ব্যবহার করা অস্থায়ী ব্যবহারকারী ডেটা ডিরেক্টরিটি পরিষ্কার করতে পারে না।
debuggerAddress স্ট্রিং
সংযোগ করার জন্য একটি Chrome ডিবাগার সার্ভারের ঠিকানা, <hostname/ip:port> আকারে, যেমন '127.0.0.1:38947'
excludeSwitches স্ট্রিং তালিকা Chrome শুরু করার সময় ডিফল্টভাবে ChromeDriver পাস বাদ দিতে Chrome কমান্ড লাইনের সুইচের তালিকা। -- এর সাথে সুইচগুলি উপসর্গ করবেন না।
minidumpPath স্ট্রিং ক্রোম মিনিডাম্প সংরক্ষণ করার জন্য ডিরেক্টরি। (শুধুমাত্র লিনাক্সে সমর্থিত।)
mobileEmulation অভিধান "deviceName" এর মান সহ একটি অভিধান অথবা "deviceMetrics" এবং "userAgent" এর মান সহ একটি অভিধান। আরও তথ্যের জন্য মোবাইল এমুলেশন পড়ুন।
perfLoggingPrefs অভিধান একটি ঐচ্ছিক অভিধান যা পারফরম্যান্স লগিং পছন্দগুলি নির্দিষ্ট করে৷ আরও তথ্যের জন্য নীচে দেখুন.
windowTypes স্ট্রিং তালিকা উইন্ডোর ধরনগুলির একটি তালিকা যা উইন্ডো হ্যান্ডেলগুলির তালিকায় প্রদর্শিত হয়। ওয়েবভিউ উপাদানগুলিতে অ্যাক্সেসের জন্য, এই তালিকায় "ওয়েবভিউ" অন্তর্ভুক্ত করুন।

perfLoggingPrefs অবজেক্ট

perfLoggingPrefs অভিধানে নিম্নলিখিত বিন্যাস রয়েছে। সমস্ত কী ঐচ্ছিক:

নাম টাইপ ডিফল্ট বর্ণনা
enableNetwork বুলিয়ান সত্য নেটওয়ার্ক ডোমেইন থেকে ইভেন্ট সংগ্রহ করবেন কি না।
enablePage বুলিয়ান সত্য পেজ ডোমেইন থেকে ইভেন্ট সংগ্রহ করবেন কি না।
traceCategories স্ট্রিং (খালি) Chrome ট্রেসিং বিভাগের একটি কমা দ্বারা পৃথক করা স্ট্রিং যার জন্য ট্রেস ইভেন্টগুলি সংগ্রহ করা উচিত৷ একটি অনির্দিষ্ট বা খালি স্ট্রিং ট্রেসিং অক্ষম করে।
bufferUsageReportingInterval ধনাত্মক পূর্ণসংখ্যা 1000 DevTools-এর মধ্যে অনুরোধ করা সংখ্যক মিলিসেকেন্ড বাফার ব্যবহারের ইভেন্টগুলি ট্রেস করে৷ উদাহরণস্বরূপ, যদি 1000 হয়, তাহলে প্রতি সেকেন্ডে একবার, DevTools রিপোর্ট করে যে ট্রেস বাফার কতটা পূর্ণ। যদি একটি রিপোর্ট নির্দেশ করে বাফার ব্যবহার 100%, একটি সতর্কতা জারি করা হয়।

প্রত্যাবর্তিত ক্ষমতা

এখানে সমস্ত Chrome-নির্দিষ্ট প্রত্যাবর্তিত ক্ষমতাগুলির একটি তালিকা রয়েছে, অন্য কথায়, আপনি যখন একটি নতুন সেশন তৈরি করেন তখন ChromeDriver কী ফেরত দেয়৷

নাম টাইপ বর্ণনা
chrome.chromedriverVersion স্ট্রিং ChromeDriver এর সংস্করণ
userDataDir স্ট্রিং ব্যবহারকারী ডেটা ডিরেক্টরির পথ যা Chrome ব্যবহার করছে; মনে রাখবেন, এটি একটি 'ক্রোম' অভিধানের ভিতরে রয়েছে