ওয়েবড্রাইভার অন্তর্ভুক্ত, সুস্পষ্ট এবং সাবলীল অপেক্ষার উদাহরণ

ওয়েবড্রাইভারের অন্তর্নিহিত অপেক্ষা, সুস্পষ্ট অপেক্ষা এবং সাবলীল অপেক্ষার মধ্যে পার্থক্য কী? আরও সুনির্দিষ্টভাবে বলা যায় যে ওয়েবড্রাইভারওয়াইট এবং ফ্লুওয়েটের সাথে কী সম্পর্ক?

এখানে জাভা সহ ওয়েবড্রাইভারে প্রতিটি অপেক্ষার পদ্ধতি ব্যবহারের উদাহরণ রয়েছে।



অন্তর্নিহিত অপেক্ষা করুন

একটি অন্তর্নিহিত অপেক্ষা হ'ল ওয়েবড্রাইভারকে কোনও উপাদান বা উপাদানগুলি যদি তাত্ক্ষণিকভাবে উপলব্ধ না হয় তবে সন্ধানের জন্য নির্দিষ্ট সময়ের জন্য ডমকে পোল করতে বলুন। ডিফল্ট সেটিংটি 0. হয় set


অন্তর্নিহিত অপেক্ষার ব্যবহারের উদাহরণ

WebDriver driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get('http://somedomain/slow_loading_url'); WebElement dynamicElement = driver.findElement(By.id('dynamicElement'));

আমাদের অন্তর্ভুক্ত অপেক্ষাগুলি কখন ব্যবহার করা উচিত?


সাধারণত, আমরা স্পষ্টভাবে অপেক্ষা বা অনর্গল অপেক্ষা করতে পারি যখন অন্তর্নিহিত অপেক্ষাগুলি ব্যবহার করার পরামর্শ দেওয়া হয় না।



সুস্পষ্ট অপেক্ষা

একটি সুস্পষ্ট অপেক্ষা এমন একটি কোড যা আপনি কোডে আরও এগিয়ে যাওয়ার আগে একটি নির্দিষ্ট শর্তটি হওয়ার জন্য অপেক্ষা করার জন্য সংজ্ঞা দিয়েছিলেন। ডিফল্টরূপে ওয়েবড্রাইভারওয়েট প্রত্যাশিত কনডিশনকে কল করে প্রতি 500 মিলিসেকেন্ড যতক্ষণ না এটি সফলভাবে ফিরে আসে।

সুস্পষ্ট অপেক্ষা ব্যবহারের উদাহরণ

WebDriver driver = new FirefoxDriver(); driver.get('http://somedomain/someurl'); WebElement dynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.id('dynamicElement')));

কখন আমাদের স্পষ্ট প্রতীক্ষা ব্যবহার করা উচিত?


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



সাবলীল অপেক্ষা করুন

ফ্লুওয়েট ইনস্ট্যান্স ব্যবহার করার সময়, আমরা উল্লেখ করতে পারি:

  • ফ্লুয়েন্টওয়েট যে ফ্রিকোয়েন্সি সহ শর্তাবলী সংজ্ঞায়িত করতে হবে।
  • পৃষ্ঠায় কোনও উপাদান অনুসন্ধান করার সময় NoSuchElementException এর মতো নির্দিষ্ট ধরণের ব্যতিক্রম উপেক্ষা করুন।
  • শর্তের জন্য অপেক্ষা করতে সর্বাধিক পরিমাণ

ফ্লুওয়েট ব্যবহারের উদাহরণ

// Waiting 30 seconds for an element to be present on the page, checking // for its presence once every 5 seconds. Wait wait = new FluentWait(driver)
.withTimeout(30, SECONDS)
.pollingEvery(5, SECONDS)
.ignoring(NoSuchElementException.class); WebElement foo = wait.until(new Function() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id('foo')); } });

আমাদের কখন ফ্লুওয়েট ব্যবহার করা উচিত?


যখন আপনি এমন কোনও এলিমেন্টের উপস্থিতি পরীক্ষা করার চেষ্টা করেন যা প্রতি x সেকেন্ড / মিনিট পরে উপস্থিত হতে পারে।



ওয়েবড্রাইভারওয়েট এবং ফ্লুওয়েট এর মধ্যে পার্থক্য

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

সুতরাং, অপেক্ষা না করে এবং তারপরে | _ _ + _ | ব্যবহার করার পরিবর্তে:

findElement

আমরা ব্যবহার করতে পারি:


WebDriverWait wait = new WebDriverWait(driver, 18); wait.until(ExpectedConditions.elementToBeClickable(By.linkText('Account'))); WebElement element = driver.findElement(By.linkText('Account')); element.sendKeys(Keys.CONTROL); element.click();

আরও পড়া:

আকর্ষণীয় নিবন্ধ