ক্লিক সমস্যা

'উপাদানটি ক্লিকযোগ্য নয়' ত্রুটি

ক্রোমড্রাইভার ক্লিকিং এলিমেন্টের প্রথম ক্লায়েন্ট রেক্টের মাঝখানে একটি মাউস ক্লিক সিমুলেট করে কাজ করে (বা বাউন্ডিং ক্লায়েন্ট রেক্ট যদি এটিতে প্রথম ক্লায়েন্ট রেক্ট না থাকে)। ChromeDriver কোথায় ক্লিক করার চেষ্টা করছে তা খুঁজে বের করার সবচেয়ে সহজ উপায় হল chrome devtools ওপেন করা এবং আপনার ক্লিক অপারেশন কল করার ঠিক আগে ক্লিক করা উপাদানটি পরিদর্শন করা। ইন্সপেক্টরে উপাদানটি নির্বাচন করুন এবং নীচের চিত্রের মতো উপাদানটির ক্লায়েন্ট রেক্টের প্রতিনিধিত্বকারী নীল বাক্সটি লক্ষ্য করুন। ChromeDriver প্রথমটির মাঝখানে ক্লিক করার চেষ্টা করবে।

যদি ChromeDriver 'Element is not clickable' ত্রুটি ছুঁড়ে দেয়, তাহলে সম্ভবত সেই অবস্থানটি ব্যবহারকারী দ্বারা ক্লিকযোগ্য নয়। পরীক্ষা করার জন্য, প্রথম ক্লায়েন্ট রেক্টের মাঝখানে আপনার কার্সার রাখুন এবং দেখুন যে অবস্থানটি ক্লিকযোগ্য কিনা।

উপরের ক্ষেত্রে, পরীক্ষাটি অ্যাঙ্কর উপাদানটিতে ক্লিক করার চেষ্টা করছিল। এই ক্ষেত্রে অ্যাঙ্কর ক্লিকযোগ্য নয়; শুধুমাত্র শিশু ইমেজ হয়. চিত্র উপাদানে একটি margin-bottom শৈলীর কারণে, অ্যাঙ্কর উপাদানটির মাঝখানে ক্লিকযোগ্য চিত্রের সীমানার বাইরে পড়ে এবং এইভাবে ChromeDriver একটি ত্রুটি ছুড়ে দেয়। পজিশনিং/সাইজিং কীভাবে নির্ধারণ করা হয় সে সম্পর্কে আরও তথ্যের জন্য, w3 স্পেক দেখুন। উপরের কেসটি ঠিক করতে, অ্যাঙ্করের পরিবর্তে ছবিতে ক্লিক করুন।

'উপাদানটি ক্লিকযোগ্য নয়' ত্রুটিটি প্রায়শই নিম্নলিখিত পরিস্থিতিতে ঘটে যখন একটি পরীক্ষা চেষ্টা করে:

  • একটি নোঙ্গর ক্লিক করুন যার ক্লিকযোগ্য বংশধর উপাদানগুলি অ্যাঙ্কর সীমার মধ্যে নেই (উপরের মতো)
  • অন্য উপাদানের অধীনে একটি উপাদান সম্পূর্ণ বা আংশিকভাবে ক্লিক করুন
  • একটি নির্দিষ্ট ওভারলে উপস্থিত থাকলে একটি উপাদান অফস্ক্রিনে ক্লিক করুন (উপাদানটি দৃশ্যে স্ক্রোল করা হবে, তবে এটি নির্দিষ্ট ওভারলের অধীনে স্ক্রোল করা যেতে পারে)
  • মাঝখানে ক্লিকযোগ্য নয় এমন একটি উপাদানে ক্লিক করুন (যেমন, কিছু ধরনের উত্তল SVG উপাদান)

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

'উপাদানটি ক্লিকযোগ্য নয়' ত্রুটি

এটি সম্ভবত ঘটবে কারণ ChromeDriver উপাদানটির অবস্থান নির্ধারণ করার কিছু সময় পরে উপাদানটির অবস্থান পরিবর্তিত হয়েছে কিন্তু ChromeDriver প্রকৃতপক্ষে অবস্থানটিতে একটি ক্লিক ইস্যু করার আগে।

এটি আপনার সমস্যা কিনা তা নির্ধারণ করতে, ক্লিক থেকে ব্যতিক্রমটি ধরুন এবং অবিলম্বে উপাদানটির বর্তমান অবস্থান এবং আকার লগ করুন৷ ChromeDriver যে অবস্থানের রিপোর্ট করেছে সেটির সাথে তুলনা করুন এটি ব্যতিক্রমে ক্লিক করার চেষ্টা করেছে এবং দেখুন তারা আলাদা কিনা। যদি তাই হয়, আপনাকে উপাদানটি সরানো বন্ধ করার জন্য অপেক্ষা করতে হবে বা আবার ক্লিক করার চেষ্টা করতে হবে। যদি না হয়, একটি ছোট পরীক্ষার পৃষ্ঠার সাথে একটি বাগ ফাইল করুন যা আপনার সমস্যাটি পুনরুত্পাদন করতে ব্যবহার করা যেতে পারে (এমনকি যদি এটি শুধুমাত্র মাঝে মাঝে সমস্যাটি ট্রিগার করে)।

ChromeDriver একটি চলমান উপাদান ক্লিক করতে পারে না৷

এটি ChromeDriver-এর একটি সমর্থিত বৈশিষ্ট্য নয়৷ যদি উপাদানটি শেষ পর্যন্ত বন্ধ হয়ে যায়, তাহলে এটি ঘটতে অপেক্ষা করুন। যদি উপাদানটি কখনই চলা বন্ধ না করে, ChromeDriver নিশ্চিত করে না যে ক্লিকটি সফল হবে৷