Class: Puppeteer::NodeLocator

Inherits:
Locator
  • Object
show all
Defined in:
lib/puppeteer/locators.rb,
sig/puppeteer/locators.rbs

Constant Summary

Constants inherited from Locator

Locator::RETRY_DELAY_SECONDS

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Locator

#click, #clone, #copy_options, #fill, #filter, #filter_handle, function_string?, #hover, #map, #map_handle, #on, #once, race, #scroll, #set_ensure_element_is_in_the_viewport, #set_timeout, #set_visibility, #set_wait_for_enabled, #set_wait_for_stable_bounding_box, #timeout, #wait, #wait_handle

Methods included from EventCallbackable

#add_event_listener, #emit_event, #observe_first, #off, #on_event, #remove_event_listener

Constructor Details

#initialize(page_or_frame, selector_or_handle) ⇒ NodeLocator

Returns a new instance of NodeLocator.

Parameters:

  • page_or_frame (Object)
  • selector_or_handle (Object)


692
693
694
695
696
# File 'lib/puppeteer/locators.rb', line 692

def initialize(page_or_frame, selector_or_handle)
  super()
  @page_or_frame = page_or_frame
  @selector_or_handle = selector_or_handle
end

Class Method Details

.create(page_or_frame, selector) ⇒ Puppeteer::Locator

Parameters:

Returns:



681
682
683
# File 'lib/puppeteer/locators.rb', line 681

def self.create(page_or_frame, selector)
  new(page_or_frame, selector).set_timeout(default_timeout_for(page_or_frame))
end

.create_from_handle(page_or_frame, handle) ⇒ Puppeteer::Locator

Parameters:

Returns:



688
689
690
# File 'lib/puppeteer/locators.rb', line 688

def self.create_from_handle(page_or_frame, handle)
  new(page_or_frame, handle).set_timeout(default_timeout_for(page_or_frame))
end

Instance Method Details

#_cloneObject

Returns:

  • (Object)


698
699
700
# File 'lib/puppeteer/locators.rb', line 698

protected def _clone
  self.class.new(@page_or_frame, @selector_or_handle).copy_options(self)
end

#_wait(options) ⇒ Object

Parameters:

  • options (Object)

Returns:

  • (Object)

Raises:



702
703
704
705
706
707
708
709
710
711
712
713
714
# File 'lib/puppeteer/locators.rb', line 702

protected def _wait(options)
  handle = if @selector_or_handle.is_a?(String)
    selector = @selector_or_handle
    @page_or_frame.wait_for_selector(selector, visible: false, timeout: options[:timeout])
  else
    @selector_or_handle
  end

  raise Puppeteer::Error.new('No element found for selector') unless handle

  wait_for_visibility_if_needed(handle, options)
  handle
end