দ্রষ্টব্য: আসুন 'ক্লিক' কল করুন ব্যবহারকারী-শেষ ক্লিক। জেএস-এর মাধ্যমে 'জেএস ক্লিক' ক্লিক করা হয়
নিয়মিত ওয়েবড্রাইভার ক্লিক না করলে কেন "জাভাস্ক্রিপ্টের মাধ্যমে" ক্লিক করা কাজ করে?
এটি হওয়ার জন্য দুটি মামলা রয়েছে:
I. আপনি যদি ফামটমজেএস ব্যবহার করেন
তারপরে এটি সবচেয়ে সাধারণ পরিচিত আচরণ PhantomJS
। কিছু উপাদান কখনও কখনও ক্লিকযোগ্য হয় না, উদাহরণস্বরূপ <div>
। এটি কারণ PhantomJS
ব্রাউজারগুলির ইঞ্জিন (প্রাথমিক HTML + সিএসএস -> কম্পিউটিং সিএসএস -> রেন্ডারিংয়ের মতো) অনুকরণের জন্য তৈরি হয়েছিল। তবে এর অর্থ এই নয় যে শেষ ব্যবহারকারীর উপায় (দেখার, ক্লিক করা, টেনে আনার) সাথে যোগাযোগ করা হবে। অতএবPhamtomJS
কেবলমাত্র শেষ ব্যবহারকারীদের মিথস্ক্রিয়া দ্বারা আংশিকভাবে সমর্থিত।
জেএস ক্লিক কেন কাজ করে? উভয় ক্লিকের জন্য, এগুলি সবই ক্লিক ক্লিক। এটা যেন বন্দুকের মতো 1 ব্যারেল এবং 2 ট্রিগারযুক্ত । ভিউপোর্টের একজন, জেএসের একজন। যেহেতু PhamtomJS
ব্রাউজারের ইঞ্জিন simulating বড়, একটি জাতীয় ক্লিক পুরোপুরি কাজ করা উচিত।
২। "ক্লিক" এর ইভেন্ট হ্যান্ডলারটি খারাপ সময়কে আবদ্ধ করতে পারে।
উদাহরণস্বরূপ, আমরা একটি পেয়েছি <div>
আমরা একই ফলাফল সঙ্গে শেষ হতে পারে। ক্লিক কাজ করবে না, কারণ ওয়েবড্রাইভারজেএস যখন ক্লিকের ইভেন্ট হ্যান্ডলারটি নেই তখন উপাদানটিতে ক্লিক করার চেষ্টা করছে।
জেএস ক্লিক কেন কাজ করে?জেএস ক্লিকটি ব্রাউজারে সরাসরি জেএস ইনজেক্ট করার মতো। 2 উপায় সহ সম্ভব,
মুষ্টি ডেভলগুলি কনসোলের মাধ্যমে হয় (হ্যাঁ, ওয়েবড্রাইভারজেএস ডিভলটুলের কনসোলের সাথে যোগাযোগ করে)।
দ্বিতীয় ইনজেকশন ক<script>
এইচটিএমএলে ট্যাগ করা।
প্রতিটি ব্রাউজারের জন্য, আচরণটি আলাদা হবে। তবে নির্বিশেষে, এই পদ্ধতিগুলি বোতামে ক্লিক করার চেয়ে জটিল are ক্লিকগুলি ইতিমধ্যে সেখানে কী ব্যবহার করছে (শেষ ব্যবহারকারীরা ক্লিক করুন), জেএস ক্লিকটি পিছনের দিক দিয়ে চলছে।
এবং জেএসের জন্য ক্লিক একটি অ্যাসিক্রোনাস টাস্ক হিসাবে উপস্থিত হবে। এটি ' ব্রাউজার অ্যাসিনক্রোনাস টাস্ক এবং সিপিইউ টাস্ক শিডিয়ুলিং ' এর একটি কিন্ডা জটিল বিষয়ের সাথে সম্পর্কিত (কিছুক্ষণ আগে এটি নিবন্ধটি আবার খুঁজে পাবে না) পড়ুন। সংক্ষেপে এটি বেশিরভাগের ফলাফল হিসাবে আসবে কারণ js ক্লিকের জন্য সিপিইউয়ের টাস্ক শিডিয়ুলিংয়ের একটি চক্রের জন্য অপেক্ষা করতে হবে এবং ক্লিক ইভেন্টটি বাঁধার পরে এটি কিছুটা ধীর হয়ে যাবে।
(আপনি যখন এই উপাদানটি কখনও কখনও ক্লিকযোগ্য, কখনও কখনও নাও দেখতে পেতেন তখন আপনি এই কেসটি জানতে পারতেন))
কখন এটি ঘটছে এবং এই কর্মক্ষেত্রের নেতিবাচক দিকটি (যদি থাকে)?
=> উপরে উল্লিখিত হিসাবে, উভয়ই এক উদ্দেশ্যে বোঝায় তবে কোন প্রবেশদ্বারটি ব্যবহার করে:
- ক্লিক করুন: ব্রাউজারের ডিফল্ট হিসাবে কি সরবরাহ করছে তা ব্যবহার করছে।
- জেএস ক্লিক: পিছনের দিক দিয়ে চলছে।
=> পারফরম্যান্সের জন্য, এটি বলা শক্ত কারণ এটি ব্রাউজারগুলির উপর নির্ভর করে। তবে সাধারণত:
- ক্লিক করুন: দ্রুত মানে না তবে সিপিইউ এক্সিকিউশন টাস্কের সময়সূচির তালিকায় কেবলমাত্র উচ্চ অবস্থানে স্বাক্ষরিত।
- জেএস ক্লিক: ধীর মানে না শুধুমাত্র এটি সিপিইউ কার্যের সময়সূচির তালিকার শেষ পজিশনে সাইন ইন করে।
=> ডাউনসাইডস:
- ক্লিক করুন: আপনি ফ্যামটমজেএস ব্যবহার করা বাদ দিলে কোনও খারাপ দিক রয়েছে বলে মনে হচ্ছে না।
- জেএস ক্লিক: স্বাস্থ্যের জন্য খুব খারাপ। আপনি দুর্ঘটনাক্রমে এমন কিছুতে ক্লিক করতে পারেন যা দৃশ্যটিতে নেই। আপনি এটি ব্যবহার করার সময়, নিশ্চিত হয়ে নিন যে উপাদানটি সেখানে উপস্থিত রয়েছে এবং দেখার জন্য এবং ব্যবহারকারীর দৃষ্টিকোণ হিসাবে ক্লিক করুন click
PS যদি আপনি কোনও সলিউশন খুঁজছেন।
- ফ্যান্টমজেএস ব্যবহার করছেন? আমি পরিবর্তে ক্রোম হেডলেস ব্যবহার করার পরামর্শ দেব। হ্যাঁ, আপনি উবুন্টুতে ক্রোম হেডলেস সেট আপ করতে পারেন। জিনিসটি ক্রোমের মতো চলে তবে এটিতে কেবল ফ্যান্টমজেএস-এর মতো একটি ভিউ এবং কম বগি নেই।
- ফ্যামটমজেএস ব্যবহার করছেন না তবে এখনও সমস্যা আছে? আমি প্রত্যাশিত শর্তের সাথে প্রোটেক্টর ব্যবহার করার পরামর্শ দেব
browser.wait()
( আরও তথ্যের জন্য এটি পরীক্ষা করুন )
(আমি এটি সংক্ষিপ্ত করতে চাই, তবে খারাপভাবে শেষ করেছি theory তত্ত্বের সাথে সম্পর্কিত যে কোনও কিছুই ব্যাখ্যা করা জটিল))