Class: Puppeteer::Frame
- Inherits:
- 
      Object
      
        - Object
- Puppeteer::Frame
 
- Defined in:
- lib/puppeteer/frame.rb
Instance Attribute Summary collapse
- 
  
    
      #frame_manager  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute frame_manager. 
- 
  
    
      #id  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute id. 
- 
  
    
      #lifecycle_events  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute lifecycle_events. 
- 
  
    
      #loader_id  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute loader_id. 
- 
  
    
      #main_world  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute main_world. 
- 
  
    
      #secondary_world  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute secondary_world. 
Instance Method Summary collapse
- #add_script_tag(url: nil, path: nil, content: nil, type: nil) ⇒ Object
- #add_style_tag(url: nil, path: nil, content: nil) ⇒ Object
- #child_frames ⇒ Object
- #click(selector, delay: nil, button: nil, click_count: nil) ⇒ Object
- #content ⇒ String
- #detach ⇒ Object
- #detached? ⇒ Boolean
- 
  
    
      #eval_on_selector(selector, page_function, *args)  ⇒ !Promise<(!Object|undefined)> 
    
    
      (also: #Seval)
    
  
  
  
  
  
  
  
  
  
    `$eval()` in JavaScript. 
- 
  
    
      #eval_on_selector_all(selector, page_function, *args)  ⇒ !Promise<(!Object|undefined)> 
    
    
      (also: #SSeval)
    
  
  
  
  
  
  
  
  
  
    `$$eval()` in JavaScript. 
- #evaluate(page_function, *args) ⇒ Object
- #evaluate_handle(page_function, *args) ⇒ !Promise<!Puppeteer.JSHandle>
- #execution_context ⇒ Object
- #focus(selector) ⇒ Object
- #goto(url, referer: nil, timeout: nil, wait_until: nil) ⇒ Puppeteer::Response
- #handle_lifecycle_event(loader_id, name) ⇒ Object
- #handle_loading_stopped ⇒ Object
- #hover(selector) ⇒ Object
- 
  
    
      #initialize(frame_manager, client, parent_frame, frame_id)  ⇒ Frame 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Frame. 
- #name ⇒ String
- #navigated(frame_payload) ⇒ Object
- #navigated_within_document(url) ⇒ Object
- #parent_frame ⇒ Frame?
- 
  
    
      #query_selector(selector)  ⇒ !Promise<?Puppeteer.ElementHandle> 
    
    
      (also: #S)
    
  
  
  
  
  
  
  
  
  
    `$()` in JavaScript. 
- 
  
    
      #query_selector_all(selector)  ⇒ !Promise<!Array<!Puppeteer.ElementHandle>> 
    
    
      (also: #SS)
    
  
  
  
  
  
  
  
  
  
    `$$()` in JavaScript. 
- #select(selector, *values) ⇒ !Promise<!Array<string>>
- #set_content(html, timeout: nil, wait_until: nil) ⇒ Object
- 
  
    
      #Sx(expression)  ⇒ !Promise<!Array<!Puppeteer.ElementHandle>> 
    
    
  
  
  
  
  
  
  
  
  
    `$x()` in JavaScript. 
- #tap(selector) ⇒ Object
- #title ⇒ String
- #type_text(selector, text, delay: nil) ⇒ Object
- #url ⇒ String
- #wait_for_function(page_function, args: [], polling: nil, timeout: nil) ⇒ Puppeteer::JSHandle
- #wait_for_selector(selector, visible: nil, hidden: nil, timeout: nil) ⇒ Object
- #wait_for_timeout(milliseconds) ⇒ Object
- #wait_for_xpath(xpath, visible: nil, hidden: nil, timeout: nil) ⇒ Object
Constructor Details
#initialize(frame_manager, client, parent_frame, frame_id) ⇒ Frame
Returns a new instance of Frame.
| 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # File 'lib/puppeteer/frame.rb', line 8 def initialize(frame_manager, client, parent_frame, frame_id) @frame_manager = frame_manager @client = client @parent_frame = parent_frame @id = frame_id @detached = false @loader_id = '' @lifecycle_events = Set.new @main_world = Puppeteer::DOMWorld.new(frame_manager, self, frame_manager.timeout_settings) @secondary_world = Puppeteer::DOMWorld.new(frame_manager, self, frame_manager.timeout_settings) @child_frames = Set.new if parent_frame parent_frame._child_frames << self end end | 
Instance Attribute Details
#frame_manager ⇒ Object
Returns the value of attribute frame_manager.
| 25 26 27 | # File 'lib/puppeteer/frame.rb', line 25 def frame_manager @frame_manager end | 
#id ⇒ Object
Returns the value of attribute id.
| 25 26 27 | # File 'lib/puppeteer/frame.rb', line 25 def id @id end | 
#lifecycle_events ⇒ Object
Returns the value of attribute lifecycle_events.
| 25 26 27 | # File 'lib/puppeteer/frame.rb', line 25 def lifecycle_events @lifecycle_events end | 
#loader_id ⇒ Object
Returns the value of attribute loader_id.
| 25 26 27 | # File 'lib/puppeteer/frame.rb', line 25 def loader_id @loader_id end | 
#main_world ⇒ Object
Returns the value of attribute main_world.
| 25 26 27 | # File 'lib/puppeteer/frame.rb', line 25 def main_world @main_world end | 
#secondary_world ⇒ Object
Returns the value of attribute secondary_world.
| 25 26 27 | # File 'lib/puppeteer/frame.rb', line 25 def secondary_world @secondary_world end | 
Instance Method Details
#add_script_tag(url: nil, path: nil, content: nil, type: nil) ⇒ Object
| 160 161 162 | # File 'lib/puppeteer/frame.rb', line 160 def add_script_tag(url: nil, path: nil, content: nil, type: nil) @main_world.add_script_tag(url: url, path: path, content: content, type: type) end | 
#add_style_tag(url: nil, path: nil, content: nil) ⇒ Object
| 167 168 169 | # File 'lib/puppeteer/frame.rb', line 167 def add_style_tag(url: nil, path: nil, content: nil) @main_world.add_style_tag(url: url, path: path, content: content) end | 
#child_frames ⇒ Object
| 148 149 150 | # File 'lib/puppeteer/frame.rb', line 148 def child_frames @child_frames.to_a end | 
#click(selector, delay: nil, button: nil, click_count: nil) ⇒ Object
| 175 176 177 | # File 'lib/puppeteer/frame.rb', line 175 def click(selector, delay: nil, button: nil, click_count: nil) @secondary_world.click(selector, delay: delay, button: , click_count: click_count) end | 
#content ⇒ String
| 118 119 120 | # File 'lib/puppeteer/frame.rb', line 118 def content @secondary_world.content end | 
#detach ⇒ Object
| 301 302 303 304 305 306 307 308 309 | # File 'lib/puppeteer/frame.rb', line 301 def detach @detached = true @main_world.detach @secondary_world.detach if @parent_frame @parent_frame._child_frames.delete(self) end @parent_frame = nil end | 
#detached? ⇒ Boolean
| 152 153 154 | # File 'lib/puppeteer/frame.rb', line 152 def detached? @detached end | 
#eval_on_selector(selector, page_function, *args) ⇒ !Promise<(!Object|undefined)> Also known as: Seval
`$eval()` in JavaScript.
| 88 89 90 | # File 'lib/puppeteer/frame.rb', line 88 def eval_on_selector(selector, page_function, *args) @main_world.eval_on_selector(selector, page_function, *args) end | 
#eval_on_selector_all(selector, page_function, *args) ⇒ !Promise<(!Object|undefined)> Also known as: SSeval
`$$eval()` in JavaScript.
| 100 101 102 | # File 'lib/puppeteer/frame.rb', line 100 def eval_on_selector_all(selector, page_function, *args) @main_world.eval_on_selector_all(selector, page_function, *args) end | 
#evaluate(page_function, *args) ⇒ Object
| 58 59 60 | # File 'lib/puppeteer/frame.rb', line 58 def evaluate(page_function, *args) @main_world.evaluate(page_function, *args) end | 
#evaluate_handle(page_function, *args) ⇒ !Promise<!Puppeteer.JSHandle>
| 50 51 52 | # File 'lib/puppeteer/frame.rb', line 50 def evaluate_handle(page_function, *args) @main_world.evaluate_handle(page_function, *args) end | 
#execution_context ⇒ Object
| 44 45 46 | # File 'lib/puppeteer/frame.rb', line 44 def execution_context @main_world.execution_context end | 
#focus(selector) ⇒ Object
| 182 183 184 | # File 'lib/puppeteer/frame.rb', line 182 def focus(selector) @secondary_world.focus(selector) end | 
#goto(url, referer: nil, timeout: nil, wait_until: nil) ⇒ Puppeteer::Response
| 32 33 34 | # File 'lib/puppeteer/frame.rb', line 32 def goto(url, referer: nil, timeout: nil, wait_until: nil) @frame_manager.navigate_frame(self, url, referer: referer, timeout: timeout, wait_until: wait_until) end | 
#handle_lifecycle_event(loader_id, name) ⇒ Object
| 288 289 290 291 292 293 294 | # File 'lib/puppeteer/frame.rb', line 288 def handle_lifecycle_event(loader_id, name) if name == 'init' @loader_id = loader_id @lifecycle_events.clear end @lifecycle_events << name end | 
#handle_loading_stopped ⇒ Object
| 296 297 298 299 | # File 'lib/puppeteer/frame.rb', line 296 def handle_loading_stopped @lifecycle_events << 'DOMContentLoaded' @lifecycle_events << 'load' end | 
#hover(selector) ⇒ Object
| 189 190 191 | # File 'lib/puppeteer/frame.rb', line 189 def hover(selector) @secondary_world.hover(selector) end | 
#name ⇒ String
| 130 131 132 | # File 'lib/puppeteer/frame.rb', line 130 def name @name || '' end | 
#navigated(frame_payload) ⇒ Object
| 274 275 276 277 278 279 280 281 | # File 'lib/puppeteer/frame.rb', line 274 def navigated(frame_payload) @name = frame_payload['name'] @url = "#{frame_payload['url']}#{frame_payload['urlFragment']}" # Ensure loaderId updated. # The order of [Page.lifecycleEvent name="init"] and [Page.frameNavigated] is random... for some reason... @loader_id = frame_payload['loaderId'] end | 
#navigated_within_document(url) ⇒ Object
| 284 285 286 | # File 'lib/puppeteer/frame.rb', line 284 def navigated_within_document(url) @url = url end | 
#parent_frame ⇒ Frame?
| 140 141 142 | # File 'lib/puppeteer/frame.rb', line 140 def parent_frame @parent_frame end | 
#query_selector(selector) ⇒ !Promise<?Puppeteer.ElementHandle> Also known as: S
`$()` in JavaScript.
| 67 68 69 | # File 'lib/puppeteer/frame.rb', line 67 def query_selector(selector) @main_world.query_selector(selector) end | 
#query_selector_all(selector) ⇒ !Promise<!Array<!Puppeteer.ElementHandle>> Also known as: SS
`$$()` in JavaScript.
| 110 111 112 | # File 'lib/puppeteer/frame.rb', line 110 def query_selector_all(selector) @main_world.query_selector_all(selector) end | 
#select(selector, *values) ⇒ !Promise<!Array<string>>
| 196 197 198 | # File 'lib/puppeteer/frame.rb', line 196 def select(selector, *values) @secondary_world.select(selector, *values) end | 
#set_content(html, timeout: nil, wait_until: nil) ⇒ Object
| 125 126 127 | # File 'lib/puppeteer/frame.rb', line 125 def set_content(html, timeout: nil, wait_until: nil) @secondary_world.set_content(html, timeout: timeout, wait_until: wait_until) end | 
#Sx(expression) ⇒ !Promise<!Array<!Puppeteer.ElementHandle>>
`$x()` in JavaScript. $ is not allowed to use as a method name in Ruby.
| 77 78 79 | # File 'lib/puppeteer/frame.rb', line 77 def Sx(expression) @main_world.Sx(expression) end | 
#tap(selector) ⇒ Object
| 203 204 205 | # File 'lib/puppeteer/frame.rb', line 203 def tap(selector) @secondary_world.tap(selector) end | 
#title ⇒ String
| 269 270 271 | # File 'lib/puppeteer/frame.rb', line 269 def title @secondary_world.title end | 
#type_text(selector, text, delay: nil) ⇒ Object
| 212 213 214 | # File 'lib/puppeteer/frame.rb', line 212 def type_text(selector, text, delay: nil) @main_world.type_text(selector, text, delay: delay) end | 
#url ⇒ String
| 135 136 137 | # File 'lib/puppeteer/frame.rb', line 135 def url @url end | 
#wait_for_function(page_function, args: [], polling: nil, timeout: nil) ⇒ Puppeteer::JSHandle
| 262 263 264 | # File 'lib/puppeteer/frame.rb', line 262 def wait_for_function(page_function, args: [], polling: nil, timeout: nil) @main_world.wait_for_function(page_function, args: args, polling: polling, timeout: timeout) end | 
#wait_for_selector(selector, visible: nil, hidden: nil, timeout: nil) ⇒ Object
| 222 223 224 225 226 227 228 229 230 231 | # File 'lib/puppeteer/frame.rb', line 222 def wait_for_selector(selector, visible: nil, hidden: nil, timeout: nil) handle = @secondary_world.wait_for_selector(selector, visible: visible, hidden: hidden, timeout: timeout) if !handle return nil end main_execution_context = @main_world.execution_context result = main_execution_context.adopt_element_handle(handle) handle.dispose result end | 
#wait_for_timeout(milliseconds) ⇒ Object
| 236 237 238 | # File 'lib/puppeteer/frame.rb', line 236 def wait_for_timeout(milliseconds) sleep(milliseconds / 1000.0) end | 
#wait_for_xpath(xpath, visible: nil, hidden: nil, timeout: nil) ⇒ Object
| 244 245 246 247 248 249 250 251 252 253 | # File 'lib/puppeteer/frame.rb', line 244 def wait_for_xpath(xpath, visible: nil, hidden: nil, timeout: nil) handle = @secondary_world.wait_for_xpath(xpath, visible: visible, hidden: hidden, timeout: timeout) if !handle return nil end main_execution_context = @main_world.execution_context result = main_execution_context.adopt_element_handle(handle) handle.dispose result end |