ওয়েবড্রাইভার ক্লিক () বনাম জাভাস্ক্রিপ্ট ক্লিক ()


126

গল্পটি:

এখানে স্ট্যাকওভারফ্লোতে, আমি ব্যবহারকারীদেরকে দেখেছি যে তারা সেলেনিয়াম ওয়েবড্রাইভার "ক্লিক" কমান্ডের মাধ্যমে কোনও উপাদানকে ক্লিক করতে পারে না এবং স্ক্রিপ্ট চালিয়ে জাভাস্ক্রিপ্ট ক্লিক করে এটি ব্যবহার করতে পারে।

পাইথনের উদাহরণ:

element = driver.find_element_by_id("myid")
driver.execute_script("arguments[0].click();", element)

ওয়েবড্রাইভারজেএস / প্রোটেক্টর উদাহরণ:

var elm = $("#myid");
browser.executeScript("arguments[0].click();", elm.getWebElement());

প্রশ্নটি:

নিয়মিত ওয়েবড্রাইভার ক্লিক না করলে কেন "জাভাস্ক্রিপ্টের মাধ্যমে" ক্লিক করা কাজ করে? কখন এটি ঘটছে এবং এই কর্মক্ষেত্রের নেতিবাচক দিকটি (যদি থাকে)?

আমাকে কেন এটি করতে হবে এবং এর ফলে কী কী সমস্যা হতে পারে তা পুরোপুরি না বুঝে আমি ব্যক্তিগতভাবে এই কর্মসূচিটি ব্যবহার করেছি।

উত্তর:


150

বিপরীতে বর্তমানে গৃহীত উত্তরগুলি যা বলেছে তার বিপরীতে , ফ্যান্টমজেএস-এর সাথে সুনির্দিষ্ট কিছু নেই যখন এটি ওয়েবড্রাইভারকে একটি ক্লিক করে জাভাস্ক্রিপ্টে করার মধ্যে পার্থক্য আসে।

পার্থক্য

দুটি পদ্ধতির মধ্যে অপরিহার্য পার্থক্য সমস্ত ব্রাউজারের কাছে সাধারণ এবং খুব সহজভাবে ব্যাখ্যা করা যায়:

  • ওয়েবড্রাইভার: ওয়েবড্রাইভার যখন ক্লিকটি করে, যখন সত্যিকারের ব্যবহারকারী ব্রাউজার ব্যবহার করে তখন কী ঘটে তা সিমুলেট করার জন্য এটি যথাসাধ্য চেষ্টা করে। ধরুন আপনার কাছে একটি উপাদান A রয়েছে যা একটি বোতাম যা "আমাকে ক্লিক করুন" এবং একটি উপাদান বি যা একটি divউপাদান যা স্বচ্ছ তবে এর মাত্রা রয়েছে এবং zIndexসেট করে যাতে এটি পুরোপুরি কভার করে Then ক্লিকটি অনুকরণ করুন যাতে বি ক্লিকটি প্রথমে গ্রহণ করে । কেন? কারণ বি ক কে আচ্ছাদন করে এবং কোনও ব্যবহারকারীর যদি এ তে ক্লিক করার চেষ্টা করা হয়, তবে বি প্রথমে ইভেন্টটি পেয়ে যাবে। বি ঘটনাচক্রে কীভাবে ইভেন্টটিকে পরিচালনা করে তা নির্ভর করে ক্লিক ইভেন্টটি পাবেন কিনা তা নির্ভর করে। যে কোনও হারে, এই ক্ষেত্রে ওয়েবড্রাইভারের সাথে আচরণ একই রকম হয় যখন কোনও আসল ব্যবহারকারী এ-তে ক্লিক করার চেষ্টা করে as

  • জাভাস্ক্রিপ্ট: এখন, ধরুন আপনি করতে জাভাস্ক্রিপ্ট ব্যবহার করেন A.click()যখন ব্যবহারকারী এ-তে ক্লিক করার চেষ্টা করেন তখন জাভাস্ক্রিপ্ট clickসরাসরি এ-তে ইভেন্ট প্রেরণ করে , এবং বি কোনও ইভেন্ট পাবে না, ক্লিক করার এই পদ্ধতিটি সত্যিই কি ঘটবে তা পুনরুত্পাদন করে না

যখন ওয়েবড্রাইভার ক্লিক না করে তখন একটি জাভাস্ক্রিপ্ট ক্লিক করুন কেন?

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

ক্লিক করার জন্য আপনার জাভাস্ক্রিপ্ট কখন ব্যবহার করা উচিত?

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

আমি "প্রায় কখনওই না" বলি কারণ সেখানে ব্যতিক্রম থাকতে পারে যেখানে জাভাস্ক্রিপ্ট ব্যবহার করা বোধগম্য। যদিও এগুলি খুব বিরল হওয়া উচিত।

আপনি যদি স্ক্র্যাপিং সাইটগুলির জন্য সেলেনিয়াম ব্যবহার করছেন তবে ব্যবহারকারীর আচরণ পুনরুত্পাদন করার চেষ্টা করা ততটা সমালোচনা নয়। সুতরাং জিইউআইকে বাইপাস করতে জাভাস্ক্রিপ্ট ব্যবহার করা কোনও সমস্যারই কম।


1
আরও ভাল উত্তর, এটি গ্রহণযোগ্য হওয়া উচিত। উপরের উত্তরটি ফ্যান্টমজেএস-এর জন্য নির্দিষ্ট একটি প্রান্তের মামলা সম্পর্কে কথা বলছে, এটি একটি আরও সঠিক আইএমএইচও।
আর্দেসকো

@ আর্দেসকো অবশ্যই। স্বীকৃত হিসাবে চিহ্নিত নিখুঁত এবং একটি বিস্তারিত উত্তর।
অ্যালেক্সে

পরিকল্পনা অনুযায়ী লিনাকে অনুদান প্রদান করা, তবে আরও একটি দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ জানাতে আমি একটি নতুন শুরু করব। ধন্যবাদ।
অ্যালেক্স

1
খুব ভাল এবং বোধগম্য উত্তর। আমার অভিজ্ঞতায় ওয়েবড্রাইভার অ্যাংুলারজেএস পৃষ্ঠাগুলিতে অনেক সমস্যা করেছে: কিছু উপাদানগুলির সাথে ওয়েবড্রাইভার পদ্ধতি পছন্দ করেছে clickবা sendKeysকাজ করেছে - তবে সর্বদা নয়। কোনও সনাক্তকরণের সমস্যা বা অন্যান্য ব্যতিক্রম ছিল না, পরীক্ষার কেসটি কেবল আরও অগ্রগতি করেনি। লগিং দেখিয়েছিল যে ক্রিয়াটি কার্যকর করা হয়েছিল। কখনও কখনও Actionসাহায্য ব্যবহার করে । আমি যদি উপাদানটিতে ম্যানুয়ালি ক্লিক করি (পরীক্ষার কেস বন্ধ হয়ে যাওয়ার পরে), সবকিছু ঠিকঠাক কাজ করেছিল। সুতরাং আমরা সেই উপলক্ষে কাঁচা জেএসে স্যুইচ করেছি। আমি গত 2 বছর ধরে AngularJS এর ​​সাথে কাজ করি নি, তাই এখন জিনিসগুলি আরও ভাল হতে পারে।
Wgrgspaß

1
@ অ্যালেক্স আমার কাছে একটি সহজ লিঙ্ক নেই। আমার উত্তরটি বিশেষত সেলেনিয়ামের অভিজ্ঞতা থেকে এবং সাধারণভাবে ব্যবহারকারীর ইভেন্টগুলির অনুকরণের মাধ্যমে গৃহীত। আমি 5 বছর আগে সেলেনিয়াম ব্যবহার শুরু করেছি। আমি সেলেনিয়াম ব্যবহার করার সময়, কিছু সমস্যা সমাধানের জন্য আমাকে সেলেনিয়াম কোডটি পড়তে হয়েছিল এবং আমি ইভেন্ট পাঠানোর বিষয়ে বেশ কয়েকটি বাগ রিপোর্ট দায়ের করেছি এবং সেলেনিয়াম বিকাশকারীদের সাথে বাগগুলি নিয়ে আলোচনা করেছি। "যতটা সম্ভব সেরা" লক্ষ্য এটি। আমি অবশ্যই (এখন নির্ধারিত) বাগগুলির মুখোমুখি হয়েছি যা এ লক্ষ্যে পৌঁছাতে বাধা দিয়েছে। কিছু বাগ থাকতে পারে।
লুই

30

ড্রাইভার কর্তৃক সম্পাদিত ক্লিকটি যত তাড়াতাড়ি সম্ভব একজন বাস্তব ব্যবহারকারীর আচরণ অনুকরণ করার চেষ্টা করে যখন জাভাস্ক্রিপ্ট ইভেন্টটির HTMLElement.click()জন্য ডিফল্ট ক্রিয়া সম্পাদন করে click, এমনকি যদি উপাদানটি ইন্টারঅ্যাকটিভ না হয়।

পার্থক্যগুলি হ'ল:

  • ড্রাইভারটি নিশ্চিত করে যে উপাদানটি এটিকে ভিউতে স্ক্রোল করে দৃশ্যমান এবং এটি উপাদানটি ইন্টারঅ্যাকটিভযোগ্য কিনা তা পরীক্ষা করে

    ড্রাইভার একটি ত্রুটি উত্থাপন করবে:

    • ক্লিকের স্থানাঙ্কগুলিতে শীর্ষে থাকা উপাদানটি লক্ষ্যযুক্ত উপাদান বা বংশধর নয়
    • যখন উপাদানটির ইতিবাচক আকার না থাকে বা এটি সম্পূর্ণ স্বচ্ছ হয়
    • যখন উপাদানটি একটি অক্ষম ইনপুট বা বোতাম হয় (বৈশিষ্ট্য / সম্পত্তি disabledহ'ল true)
    • যখন উপাদানটির মাউস পয়েন্টারটি অক্ষম থাকে (সিএসএস pointer-eventsহয় none)


    একটি জাভাস্ক্রিপ্ট HTMLElement.click()সর্বদা ডিফল্ট ক্রিয়া সম্পাদন করবে বা উপাদানটি অক্ষম থাকলে নিঃশব্দে ব্যর্থ হবে।

  • ড্রাইভারটি মনোনিবেশযোগ্য হলে উপাদানটি ফোকাসে আনবে বলে আশা করা হচ্ছে ।

    একটি জাভাস্ক্রিপ্ট HTMLElement.click()না।

  • ড্রাইভারটি বাস্তব ব্যবহারকারীর মতো সমস্ত ঘটনা (মাউসমোভ, মাউসডাউন, মাউসআপ, ক্লিক, ...) নির্গমন করবে বলে আশা করা হচ্ছে ।

    একটি জাভাস্ক্রিপ্ট HTMLElement.click()কেবল clickইভেন্টটি প্রকাশ করে। পৃষ্ঠাটি এই অতিরিক্ত ইভেন্টগুলির উপর নির্ভর করতে পারে এবং যদি এগুলি নির্গত না হয় তবে ভিন্ন আচরণ করতে পারে।

    ক্রোম সহ ক্লিকের জন্য ড্রাইভারের দ্বারা নির্ধারিত ইভেন্টগুলি:

    mouseover {target:#topic, clientX:222, clientY:343, isTrusted:true, ... }
    mousemove {target:#topic, clientX:222, clientY:343, isTrusted:true, ... }
    mousedown {target:#topic, clientX:222, clientY:343, isTrusted:true, ... }
    mouseup {target:#topic, clientX:222, clientY:343, isTrusted:true, ... }
    click {target:#topic, clientX:222, clientY:343, isTrusted:true, ... }

    এবং এটি একটি জাভাস্ক্রিপ্ট ইনজেকশন সহ নির্গত ইভেন্ট:

    click {target:#topic, clientX:0, clientY:0, isTrusted:false, ... }
  • ইভেন্টটি একটি জাভাস্ক্রিপ্ট দ্বারা নির্গত হয়েছে.click() বিশ্বাসযোগ্য নয় এবং ডিফল্ট ক্রিয়াকলাপটি নাও লাগতে পারে:

    https://developer.mozilla.org/en/docs/Web/API/Event/isTrusted
    https://googlechrome.github.io/sams/event-istrusted/index.html

    লক্ষ্য করুন যে কিছু ড্রাইভার এখনও অবিশ্বস্ত ইভেন্ট তৈরি করছে। এই সংস্করণ 2.1 সংস্করণ হিসাবে ফ্যান্টমজেএস এর ক্ষেত্রে।

  • একটি জাভাস্ক্রিপ্ট দ্বারা নির্গত ইভেন্টটির .click() ক্লিকের স্থানাঙ্ক নেই

    বৈশিষ্ট্য clientX, clientY, screenX, screenY, layerX, layerYসেট করা আছে 0। পৃষ্ঠাটি তাদের উপর নির্ভর করতে পারে এবং অন্যরকম আচরণ করতে পারে।


.click()কিছু ডেটা স্ক্র্যাপ করার জন্য জাভাস্ক্রিপ্ট ব্যবহার করা ঠিক হবে তবে এটি পরীক্ষার প্রসঙ্গে নয়। এটি পরীক্ষার উদ্দেশ্যকে পরাস্ত করে কারণ এটি কোনও ব্যবহারকারীর আচরণের অনুকরণ করে না। সুতরাং, যদি ড্রাইভারের ক্লিকটি ব্যর্থ হয়, তবে প্রকৃত ব্যবহারকারী সম্ভবত একই পরিস্থিতিতে একই ক্লিক করতে ব্যর্থ হন।


ড্রাইভারের যখন এটি সফল হওয়ার প্রত্যাশা হয় তখন কোন উপাদানটি ক্লিক করতে ব্যর্থ হয়?

  • দেরী বা একটি রূপান্তর প্রভাবের কারণে লক্ষ্যযুক্ত উপাদানটি এখনও দৃশ্যমান / ইন্টারঅ্যাক্টযোগ্য নয়।

    কিছু উদাহরণ :

    https://developer.mozilla.org/fr/docs/Web (ড্রপডাউন নেভিগেশন মেনু) http://matoryizecss.com/side-nav.html (ড্রপডাউন সাইড বার)

    Workarrounds:

    দৃশ্যমানতা, সর্বনিম্ন আকার বা একটি স্থির অবস্থানের জন্য অপেক্ষা করতে ওয়েটার যুক্ত করুন:

    // wait visible
    browser.wait(ExpectedConditions.visibilityOf(elem), 5000);
    
    // wait visible and not disabled
    browser.wait(ExpectedConditions.elementToBeClickable(elem), 5000);
    
    // wait for minimum width
    browser.wait(function minimumWidth() {
        return elem.getSize().then(size => size.width > 50);
    }, 5000);

    এটি সফল না হওয়া পর্যন্ত ক্লিক করতে পুনরায় চেষ্টা করুন:

    browser.wait(function clickSuccessful() {
        return elem.click().then(() => true, (ex) => false);
    }, 5000);

    অ্যানিমেশন / ট্রানজিশনের সময়ের সাথে মিলে একটি বিলম্ব যুক্ত করুন:

    browser.sleep(250);


  • লক্ষ্যযুক্ত উপাদানটি একবারে ভিউতে স্ক্রোল করে ভাসমান উপাদান দ্বারা আচ্ছাদিত :

    ড্রাইভারটি দৃশ্যমান হওয়ার জন্য উপাদানটি স্বয়ংক্রিয়ভাবে ভিউতে স্ক্রোল করে। পৃষ্ঠাটিতে যদি একটি ভাসমান / স্টিকি উপাদান থাকে (মেনু, বিজ্ঞাপন, পাদচরণ, বিজ্ঞপ্তি, কুকি নীতি ..) থাকে তবে উপাদানটি শেষ হয়ে যায় and

    উদাহরণ: https://twitter.com/?lang=en

    সমাধান নীচে উপস্থিত:

    স্ক্রোলিং বা ভাসমান উপাদান এড়ানোর জন্য উইন্ডোর আকারকে বড় আকারে সেট করুন।

    একটি নেতিবাচক Yঅফসেট দিয়ে উপাদানটির উপর চাপ দিন এবং তারপরে এটি ক্লিক করুন:

      browser.actions()
         .mouseMove(elem, {x: 0, y: -250})
         .click()
         .perform();

    ক্লিকের আগে উইন্ডোর মাঝখানে উপাদানটি স্ক্রোল করুন:

    browser.executeScript(function scrollCenter(elem) {
      var win = elem.ownerDocument.defaultView || window,
        box = elem.getBoundingClientRect(),
        dy = box.top - (win.innerHeight - box.height) / 2;
      win.scrollTo(win.pageXOffset, win.pageYOffset + dy);
    }, element);
    
    element.click();

    ভাসমান উপাদানটি এড়াতে না পারলে লুকান:

    browser.executeScript(function scrollCenter(elem) {
      elem.style.display = 'none';
    }, element);

17

দ্রষ্টব্য: আসুন 'ক্লিক' কল করুন ব্যবহারকারী-শেষ ক্লিক। জেএস-এর মাধ্যমে 'জেএস ক্লিক' ক্লিক করা হয়

নিয়মিত ওয়েবড্রাইভার ক্লিক না করলে কেন "জাভাস্ক্রিপ্টের মাধ্যমে" ক্লিক করা কাজ করে?

এটি হওয়ার জন্য দুটি মামলা রয়েছে:

I. আপনি যদি ফামটমজেএস ব্যবহার করেন

তারপরে এটি সবচেয়ে সাধারণ পরিচিত আচরণ PhantomJS। কিছু উপাদান কখনও কখনও ক্লিকযোগ্য হয় না, উদাহরণস্বরূপ <div>। এটি কারণ PhantomJSব্রাউজারগুলির ইঞ্জিন (প্রাথমিক HTML + সিএসএস -> কম্পিউটিং সিএসএস -> রেন্ডারিংয়ের মতো) অনুকরণের জন্য তৈরি হয়েছিল। তবে এর অর্থ এই নয় যে শেষ ব্যবহারকারীর উপায় (দেখার, ক্লিক করা, টেনে আনার) সাথে যোগাযোগ করা হবে। অতএবPhamtomJS কেবলমাত্র শেষ ব্যবহারকারীদের মিথস্ক্রিয়া দ্বারা আংশিকভাবে সমর্থিত।

জেএস ক্লিক কেন কাজ করে? উভয় ক্লিকের জন্য, এগুলি সবই ক্লিক ক্লিক। এটা যেন বন্দুকের মতো 1 ব্যারেল এবং 2 ট্রিগারযুক্ত । ভিউপোর্টের একজন, জেএসের একজন। যেহেতু PhamtomJSব্রাউজারের ইঞ্জিন simulating বড়, একটি জাতীয় ক্লিক পুরোপুরি কাজ করা উচিত।

২। "ক্লিক" এর ইভেন্ট হ্যান্ডলারটি খারাপ সময়কে আবদ্ধ করতে পারে।

উদাহরণস্বরূপ, আমরা একটি পেয়েছি <div>

  • -> আমরা কিছু গণনা করি

  • -> তারপরে আমরা ক্লিকের ইভেন্টটিকে আবদ্ধ করি <div>

  • -> আরও কৌনিক কিছু খারাপ কোডিং সহ প্লাস (উদাহরণস্বরূপ স্কোপ এর চক্র পরিচালনা না করা)

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

জেএস ক্লিক কেন কাজ করে?জেএস ক্লিকটি ব্রাউজারে সরাসরি জেএস ইনজেক্ট করার মতো। 2 উপায় সহ সম্ভব,

মুষ্টি ডেভলগুলি কনসোলের মাধ্যমে হয় (হ্যাঁ, ওয়েবড্রাইভারজেএস ডিভলটুলের কনসোলের সাথে যোগাযোগ করে)।

দ্বিতীয় ইনজেকশন ক<script> এইচটিএমএলে ট্যাগ করা।

প্রতিটি ব্রাউজারের জন্য, আচরণটি আলাদা হবে। তবে নির্বিশেষে, এই পদ্ধতিগুলি বোতামে ক্লিক করার চেয়ে জটিল are ক্লিকগুলি ইতিমধ্যে সেখানে কী ব্যবহার করছে (শেষ ব্যবহারকারীরা ক্লিক করুন), জেএস ক্লিকটি পিছনের দিক দিয়ে চলছে।

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

কখন এটি ঘটছে এবং এই কর্মক্ষেত্রের নেতিবাচক দিকটি (যদি থাকে)?

=> উপরে উল্লিখিত হিসাবে, উভয়ই এক উদ্দেশ্যে বোঝায় তবে কোন প্রবেশদ্বারটি ব্যবহার করে:

  • ক্লিক করুন: ব্রাউজারের ডিফল্ট হিসাবে কি সরবরাহ করছে তা ব্যবহার করছে।
  • জেএস ক্লিক: পিছনের দিক দিয়ে চলছে।

=> পারফরম্যান্সের জন্য, এটি বলা শক্ত কারণ এটি ব্রাউজারগুলির উপর নির্ভর করে। তবে সাধারণত:

  • ক্লিক করুন: দ্রুত মানে না তবে সিপিইউ এক্সিকিউশন টাস্কের সময়সূচির তালিকায় কেবলমাত্র উচ্চ অবস্থানে স্বাক্ষরিত।
  • জেএস ক্লিক: ধীর মানে না শুধুমাত্র এটি সিপিইউ কার্যের সময়সূচির তালিকার শেষ পজিশনে সাইন ইন করে।

=> ডাউনসাইডস:

  • ক্লিক করুন: আপনি ফ্যামটমজেএস ব্যবহার করা বাদ দিলে কোনও খারাপ দিক রয়েছে বলে মনে হচ্ছে না।
  • জেএস ক্লিক: স্বাস্থ্যের জন্য খুব খারাপ। আপনি দুর্ঘটনাক্রমে এমন কিছুতে ক্লিক করতে পারেন যা দৃশ্যটিতে নেই। আপনি এটি ব্যবহার করার সময়, নিশ্চিত হয়ে নিন যে উপাদানটি সেখানে উপস্থিত রয়েছে এবং দেখার জন্য এবং ব্যবহারকারীর দৃষ্টিকোণ হিসাবে ক্লিক করুন click

PS যদি আপনি কোনও সলিউশন খুঁজছেন।

  • ফ্যান্টমজেএস ব্যবহার করছেন? আমি পরিবর্তে ক্রোম হেডলেস ব্যবহার করার পরামর্শ দেব। হ্যাঁ, আপনি উবুন্টুতে ক্রোম হেডলেস সেট আপ করতে পারেন। জিনিসটি ক্রোমের মতো চলে তবে এটিতে কেবল ফ্যান্টমজেএস-এর মতো একটি ভিউ এবং কম বগি নেই।
  • ফ্যামটমজেএস ব্যবহার করছেন না তবে এখনও সমস্যা আছে? আমি প্রত্যাশিত শর্তের সাথে প্রোটেক্টর ব্যবহার করার পরামর্শ দেব browser.wait()( আরও তথ্যের জন্য এটি পরীক্ষা করুন )

(আমি এটি সংক্ষিপ্ত করতে চাই, তবে খারাপভাবে শেষ করেছি theory তত্ত্বের সাথে সম্পর্কিত যে কোনও কিছুই ব্যাখ্যা করা জটিল))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.