Class: Puppeteer::Bidi::FilteredLocator

Inherits:
DelegatedLocator show all
Defined in:
lib/puppeteer/bidi/locator.rb,
sig/puppeteer/bidi/locator.rbs

Overview

Locator that filters results using a predicate.

Constant Summary

Constants inherited from Locator

Locator::RETRY_DELAY

Instance Attribute Summary

Attributes inherited from DelegatedLocator

#delegate

Attributes inherited from Locator

#ensure_element_is_in_viewport, #timeout, #visibility, #wait_for_enabled, #wait_for_stable_bounding_box

Instance Method Summary collapse

Methods inherited from DelegatedLocator

#set_ensure_element_is_in_the_viewport, #set_timeout, #set_visibility, #set_wait_for_enabled, #set_wait_for_stable_bounding_box

Methods inherited from Locator

#build_deadline, #click, #clone, #copy_options, #ensure_element_is_in_viewport?, #ensure_element_is_in_viewport_if_needed, #fill, #fill_directly, #filter, #hover, #map, #map_handle, #off, #on, #once, #perform_action, race, #raise_timeout, #remaining_time_ms, #scroll, #set_ensure_element_is_in_the_viewport, #set_timeout, #set_visibility, #set_wait_for_enabled, #set_wait_for_stable_bounding_box, #wait, #wait_for_enabled?, #wait_for_enabled_if_needed, #wait_for_stable_bounding_box?, #wait_for_stable_bounding_box_if_needed, #wait_handle, #wait_until, #with_retry

Constructor Details

#initialize(delegate, predicate) ⇒ FilteredLocator

Returns a new instance of FilteredLocator.

Parameters:

  • delegate (Object)
  • predicate (Object)


617
618
619
620
# File 'lib/puppeteer/bidi/locator.rb', line 617

def initialize(delegate, predicate)
  super(delegate)
  @predicate = predicate
end

Instance Method Details

#_cloneObject

Returns:

  • (Object)


624
625
626
# File 'lib/puppeteer/bidi/locator.rb', line 624

def _clone
  FilteredLocator.new(delegate.clone, @predicate).copy_options(self)
end

#_wait(timeout_ms:, deadline:) ⇒ Object

Parameters:

  • timeout_ms: (Object)
  • deadline: (Object)

Returns:

  • (Object)

Raises:



628
629
630
631
632
633
634
# File 'lib/puppeteer/bidi/locator.rb', line 628

def _wait(timeout_ms:, deadline:)
  handle = delegate.__send__(:_wait, timeout_ms: timeout_ms, deadline: deadline)
  matched = handle.evaluate(@predicate)
  raise RetryableError unless matched

  handle
end