playwright-ruby-client 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +26 -0
 - data/documentation/docs/api/browser.md +18 -2
 - data/documentation/docs/api/browser_context.md +10 -0
 - data/documentation/docs/api/browser_type.md +1 -0
 - data/documentation/docs/api/cdp_session.md +41 -1
 - data/documentation/docs/api/download.md +97 -0
 - data/documentation/docs/api/element_handle.md +38 -4
 - data/documentation/docs/api/experimental/android_device.md +1 -0
 - data/documentation/docs/api/frame.md +78 -17
 - data/documentation/docs/api/keyboard.md +11 -20
 - data/documentation/docs/api/locator.md +650 -0
 - data/documentation/docs/api/page.md +107 -19
 - data/documentation/docs/api/response.md +16 -0
 - data/documentation/docs/article/guides/inspector.md +31 -0
 - data/documentation/docs/article/guides/playwright_on_alpine_linux.md +91 -0
 - data/documentation/docs/article/guides/rails_integration.md +1 -1
 - data/documentation/docs/article/guides/semi_automation.md +5 -1
 - data/documentation/docs/include/api_coverage.md +70 -7
 - data/lib/playwright.rb +36 -4
 - data/lib/playwright/channel_owners/artifact.rb +4 -0
 - data/lib/playwright/channel_owners/browser.rb +5 -0
 - data/lib/playwright/channel_owners/browser_context.rb +37 -3
 - data/lib/playwright/channel_owners/cdp_session.rb +19 -0
 - data/lib/playwright/channel_owners/element_handle.rb +11 -4
 - data/lib/playwright/channel_owners/frame.rb +103 -34
 - data/lib/playwright/channel_owners/page.rb +140 -53
 - data/lib/playwright/channel_owners/response.rb +9 -1
 - data/lib/playwright/connection.rb +2 -4
 - data/lib/playwright/{download.rb → download_impl.rb} +5 -1
 - data/lib/playwright/javascript/expression.rb +5 -4
 - data/lib/playwright/locator_impl.rb +314 -0
 - data/lib/playwright/route_handler_entry.rb +3 -2
 - data/lib/playwright/timeout_settings.rb +4 -4
 - data/lib/playwright/transport.rb +0 -1
 - data/lib/playwright/url_matcher.rb +12 -2
 - data/lib/playwright/version.rb +2 -2
 - data/lib/playwright/web_socket_client.rb +164 -0
 - data/lib/playwright/web_socket_transport.rb +104 -0
 - data/lib/playwright_api/android.rb +6 -6
 - data/lib/playwright_api/android_device.rb +10 -9
 - data/lib/playwright_api/browser.rb +17 -11
 - data/lib/playwright_api/browser_context.rb +14 -9
 - data/lib/playwright_api/browser_type.rb +8 -7
 - data/lib/playwright_api/cdp_session.rb +30 -8
 - data/lib/playwright_api/console_message.rb +6 -6
 - data/lib/playwright_api/dialog.rb +6 -6
 - data/lib/playwright_api/download.rb +70 -0
 - data/lib/playwright_api/element_handle.rb +44 -24
 - data/lib/playwright_api/frame.rb +100 -49
 - data/lib/playwright_api/js_handle.rb +6 -6
 - data/lib/playwright_api/locator.rb +509 -0
 - data/lib/playwright_api/page.rb +110 -57
 - data/lib/playwright_api/playwright.rb +6 -6
 - data/lib/playwright_api/request.rb +6 -6
 - data/lib/playwright_api/response.rb +15 -10
 - data/lib/playwright_api/route.rb +6 -6
 - data/lib/playwright_api/selectors.rb +6 -6
 - data/lib/playwright_api/web_socket.rb +6 -6
 - data/lib/playwright_api/worker.rb +6 -6
 - metadata +15 -5
 
| 
         @@ -22,7 +22,7 @@ module Playwright 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  end
         
     | 
| 
       23 
23 
     | 
    
         
             
                  @closed = false
         
     | 
| 
       24 
24 
     | 
    
         
             
                  @bindings = {}
         
     | 
| 
       25 
     | 
    
         
            -
                  @routes =  
     | 
| 
      
 25 
     | 
    
         
            +
                  @routes = []
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                  @main_frame = ChannelOwners::Frame.from(@initializer['mainFrame'])
         
     | 
| 
       28 
28 
     | 
    
         
             
                  @main_frame.send(:update_page_from_page, self)
         
     | 
| 
         @@ -124,7 +124,7 @@ module Playwright 
     | 
|
| 
       124 
124 
     | 
    
         
             
                end
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
       126 
126 
     | 
    
         
             
                private def on_download(params)
         
     | 
| 
       127 
     | 
    
         
            -
                  download =  
     | 
| 
      
 127 
     | 
    
         
            +
                  download = DownloadImpl.new(
         
     | 
| 
       128 
128 
     | 
    
         
             
                    page: self,
         
     | 
| 
       129 
129 
     | 
    
         
             
                    url: params['url'],
         
     | 
| 
       130 
130 
     | 
    
         
             
                    suggested_filename: params['suggestedFilename'],
         
     | 
| 
         @@ -184,15 +184,8 @@ module Playwright 
     | 
|
| 
       184 
184 
     | 
    
         
             
                  if name
         
     | 
| 
       185 
185 
     | 
    
         
             
                    @frames.find { |f| f.name == name }
         
     | 
| 
       186 
186 
     | 
    
         
             
                  elsif url
         
     | 
| 
       187 
     | 
    
         
            -
                     
     | 
| 
       188 
     | 
    
         
            -
                     
     | 
| 
       189 
     | 
    
         
            -
                    when String
         
     | 
| 
       190 
     | 
    
         
            -
                      @frames.find { |f| f.url == url }
         
     | 
| 
       191 
     | 
    
         
            -
                    when Regexp
         
     | 
| 
       192 
     | 
    
         
            -
                      @frames.find { |f| url.match?(f.url) }
         
     | 
| 
       193 
     | 
    
         
            -
                    else
         
     | 
| 
       194 
     | 
    
         
            -
                      raise NotImplementedError.new('Page#frame with url is not completely implemented yet')
         
     | 
| 
       195 
     | 
    
         
            -
                    end
         
     | 
| 
      
 187 
     | 
    
         
            +
                    matcher = UrlMatcher.new(url, base_url: @browser_context.send(:base_url))
         
     | 
| 
      
 188 
     | 
    
         
            +
                    @frames.find { |f| matcher.match?(f.url) }
         
     | 
| 
       196 
189 
     | 
    
         
             
                  else
         
     | 
| 
       197 
190 
     | 
    
         
             
                    raise ArgumentError.new('Either name or url matcher should be specified')
         
     | 
| 
       198 
191 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -212,44 +205,48 @@ module Playwright 
     | 
|
| 
       212 
205 
     | 
    
         
             
                  @channel.send_message_to_server('setDefaultTimeoutNoReply', timeout: timeout)
         
     | 
| 
       213 
206 
     | 
    
         
             
                end
         
     | 
| 
       214 
207 
     | 
    
         | 
| 
       215 
     | 
    
         
            -
                def query_selector(selector)
         
     | 
| 
       216 
     | 
    
         
            -
                  @main_frame.query_selector(selector)
         
     | 
| 
      
 208 
     | 
    
         
            +
                def query_selector(selector, strict: nil)
         
     | 
| 
      
 209 
     | 
    
         
            +
                  @main_frame.query_selector(selector, strict: strict)
         
     | 
| 
       217 
210 
     | 
    
         
             
                end
         
     | 
| 
       218 
211 
     | 
    
         | 
| 
       219 
212 
     | 
    
         
             
                def query_selector_all(selector)
         
     | 
| 
       220 
213 
     | 
    
         
             
                  @main_frame.query_selector_all(selector)
         
     | 
| 
       221 
214 
     | 
    
         
             
                end
         
     | 
| 
       222 
215 
     | 
    
         | 
| 
       223 
     | 
    
         
            -
                def wait_for_selector(selector, state: nil, timeout: nil)
         
     | 
| 
       224 
     | 
    
         
            -
                  @main_frame.wait_for_selector(selector, state: state, timeout: timeout)
         
     | 
| 
      
 216 
     | 
    
         
            +
                def wait_for_selector(selector, state: nil, strict: nil, timeout: nil)
         
     | 
| 
      
 217 
     | 
    
         
            +
                  @main_frame.wait_for_selector(selector, state: state, strict: strict, timeout: timeout)
         
     | 
| 
      
 218 
     | 
    
         
            +
                end
         
     | 
| 
      
 219 
     | 
    
         
            +
             
     | 
| 
      
 220 
     | 
    
         
            +
                def checked?(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 221 
     | 
    
         
            +
                  @main_frame.checked?(selector, strict: strict, timeout: timeout)
         
     | 
| 
       225 
222 
     | 
    
         
             
                end
         
     | 
| 
       226 
223 
     | 
    
         | 
| 
       227 
     | 
    
         
            -
                def  
     | 
| 
       228 
     | 
    
         
            -
                  @main_frame. 
     | 
| 
      
 224 
     | 
    
         
            +
                def disabled?(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 225 
     | 
    
         
            +
                  @main_frame.disabled?(selector, strict: strict, timeout: timeout)
         
     | 
| 
       229 
226 
     | 
    
         
             
                end
         
     | 
| 
       230 
227 
     | 
    
         | 
| 
       231 
     | 
    
         
            -
                def  
     | 
| 
       232 
     | 
    
         
            -
                  @main_frame. 
     | 
| 
      
 228 
     | 
    
         
            +
                def editable?(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 229 
     | 
    
         
            +
                  @main_frame.editable?(selector, strict: strict, timeout: timeout)
         
     | 
| 
       233 
230 
     | 
    
         
             
                end
         
     | 
| 
       234 
231 
     | 
    
         | 
| 
       235 
     | 
    
         
            -
                def  
     | 
| 
       236 
     | 
    
         
            -
                  @main_frame. 
     | 
| 
      
 232 
     | 
    
         
            +
                def enabled?(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 233 
     | 
    
         
            +
                  @main_frame.enabled?(selector, strict: strict, timeout: timeout)
         
     | 
| 
       237 
234 
     | 
    
         
             
                end
         
     | 
| 
       238 
235 
     | 
    
         | 
| 
       239 
     | 
    
         
            -
                def  
     | 
| 
       240 
     | 
    
         
            -
                  @main_frame. 
     | 
| 
      
 236 
     | 
    
         
            +
                def hidden?(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 237 
     | 
    
         
            +
                  @main_frame.hidden?(selector, strict: strict, timeout: timeout)
         
     | 
| 
       241 
238 
     | 
    
         
             
                end
         
     | 
| 
       242 
239 
     | 
    
         | 
| 
       243 
     | 
    
         
            -
                def  
     | 
| 
       244 
     | 
    
         
            -
                  @main_frame. 
     | 
| 
      
 240 
     | 
    
         
            +
                def visible?(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 241 
     | 
    
         
            +
                  @main_frame.visible?(selector, strict: strict, timeout: timeout)
         
     | 
| 
       245 
242 
     | 
    
         
             
                end
         
     | 
| 
       246 
243 
     | 
    
         | 
| 
       247 
     | 
    
         
            -
                def  
     | 
| 
       248 
     | 
    
         
            -
                  @main_frame. 
     | 
| 
      
 244 
     | 
    
         
            +
                def locator(selector)
         
     | 
| 
      
 245 
     | 
    
         
            +
                  @main_frame.locator(selector)
         
     | 
| 
       249 
246 
     | 
    
         
             
                end
         
     | 
| 
       250 
247 
     | 
    
         | 
| 
       251 
     | 
    
         
            -
                def dispatch_event(selector, type, eventInit: nil, timeout: nil)
         
     | 
| 
       252 
     | 
    
         
            -
                  @main_frame.dispatch_event(selector, type, eventInit: eventInit, timeout: timeout)
         
     | 
| 
      
 248 
     | 
    
         
            +
                def dispatch_event(selector, type, eventInit: nil, strict: nil, timeout: nil)
         
     | 
| 
      
 249 
     | 
    
         
            +
                  @main_frame.dispatch_event(selector, type, eventInit: eventInit, strict: strict, timeout: timeout)
         
     | 
| 
       253 
250 
     | 
    
         
             
                end
         
     | 
| 
       254 
251 
     | 
    
         | 
| 
       255 
252 
     | 
    
         
             
                def evaluate(pageFunction, arg: nil)
         
     | 
| 
         @@ -260,8 +257,8 @@ module Playwright 
     | 
|
| 
       260 
257 
     | 
    
         
             
                  @main_frame.evaluate_handle(pageFunction, arg: arg)
         
     | 
| 
       261 
258 
     | 
    
         
             
                end
         
     | 
| 
       262 
259 
     | 
    
         | 
| 
       263 
     | 
    
         
            -
                def eval_on_selector(selector, pageFunction, arg: nil)
         
     | 
| 
       264 
     | 
    
         
            -
                  @main_frame.eval_on_selector(selector, pageFunction, arg: arg)
         
     | 
| 
      
 260 
     | 
    
         
            +
                def eval_on_selector(selector, pageFunction, arg: nil, strict: nil)
         
     | 
| 
      
 261 
     | 
    
         
            +
                  @main_frame.eval_on_selector(selector, pageFunction, arg: arg, strict: strict)
         
     | 
| 
       265 
262 
     | 
    
         
             
                end
         
     | 
| 
       266 
263 
     | 
    
         | 
| 
       267 
264 
     | 
    
         
             
                def eval_on_selector_all(selector, pageFunction, arg: nil)
         
     | 
| 
         @@ -377,8 +374,8 @@ module Playwright 
     | 
|
| 
       377 
374 
     | 
    
         
             
                end
         
     | 
| 
       378 
375 
     | 
    
         | 
| 
       379 
376 
     | 
    
         
             
                def route(url, handler)
         
     | 
| 
       380 
     | 
    
         
            -
                  entry = RouteHandlerEntry.new(url, handler)
         
     | 
| 
       381 
     | 
    
         
            -
                  @routes 
     | 
| 
      
 377 
     | 
    
         
            +
                  entry = RouteHandlerEntry.new(url, @browser_context.send(:base_url), handler)
         
     | 
| 
      
 378 
     | 
    
         
            +
                  @routes.unshift(entry)
         
     | 
| 
       382 
379 
     | 
    
         
             
                  if @routes.count >= 1
         
     | 
| 
       383 
380 
     | 
    
         
             
                    @channel.send_message_to_server('setNetworkInterceptionEnabled', enabled: true)
         
     | 
| 
       384 
381 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -446,6 +443,7 @@ module Playwright 
     | 
|
| 
       446 
443 
     | 
    
         
             
                      modifiers: nil,
         
     | 
| 
       447 
444 
     | 
    
         
             
                      noWaitAfter: nil,
         
     | 
| 
       448 
445 
     | 
    
         
             
                      position: nil,
         
     | 
| 
      
 446 
     | 
    
         
            +
                      strict: nil,
         
     | 
| 
       449 
447 
     | 
    
         
             
                      timeout: nil,
         
     | 
| 
       450 
448 
     | 
    
         
             
                      trial: nil)
         
     | 
| 
       451 
449 
     | 
    
         | 
| 
         @@ -458,11 +456,31 @@ module Playwright 
     | 
|
| 
       458 
456 
     | 
    
         
             
                    modifiers: modifiers,
         
     | 
| 
       459 
457 
     | 
    
         
             
                    noWaitAfter: noWaitAfter,
         
     | 
| 
       460 
458 
     | 
    
         
             
                    position: position,
         
     | 
| 
      
 459 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
       461 
460 
     | 
    
         
             
                    timeout: timeout,
         
     | 
| 
       462 
461 
     | 
    
         
             
                    trial: trial,
         
     | 
| 
       463 
462 
     | 
    
         
             
                  )
         
     | 
| 
       464 
463 
     | 
    
         
             
                end
         
     | 
| 
       465 
464 
     | 
    
         | 
| 
      
 465 
     | 
    
         
            +
                def drag_and_drop(
         
     | 
| 
      
 466 
     | 
    
         
            +
                      source,
         
     | 
| 
      
 467 
     | 
    
         
            +
                      target,
         
     | 
| 
      
 468 
     | 
    
         
            +
                      force: nil,
         
     | 
| 
      
 469 
     | 
    
         
            +
                      noWaitAfter: nil,
         
     | 
| 
      
 470 
     | 
    
         
            +
                      strict: nil,
         
     | 
| 
      
 471 
     | 
    
         
            +
                      timeout: nil,
         
     | 
| 
      
 472 
     | 
    
         
            +
                      trial: nil)
         
     | 
| 
      
 473 
     | 
    
         
            +
             
     | 
| 
      
 474 
     | 
    
         
            +
                  @main_frame.drag_and_drop(
         
     | 
| 
      
 475 
     | 
    
         
            +
                    source,
         
     | 
| 
      
 476 
     | 
    
         
            +
                    target,
         
     | 
| 
      
 477 
     | 
    
         
            +
                    force: force,
         
     | 
| 
      
 478 
     | 
    
         
            +
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 479 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
      
 480 
     | 
    
         
            +
                    timeout: timeout,
         
     | 
| 
      
 481 
     | 
    
         
            +
                    trial: trial)
         
     | 
| 
      
 482 
     | 
    
         
            +
                end
         
     | 
| 
      
 483 
     | 
    
         
            +
             
     | 
| 
       466 
484 
     | 
    
         
             
                def dblclick(
         
     | 
| 
       467 
485 
     | 
    
         
             
                      selector,
         
     | 
| 
       468 
486 
     | 
    
         
             
                      button: nil,
         
     | 
| 
         @@ -471,6 +489,7 @@ module Playwright 
     | 
|
| 
       471 
489 
     | 
    
         
             
                      modifiers: nil,
         
     | 
| 
       472 
490 
     | 
    
         
             
                      noWaitAfter: nil,
         
     | 
| 
       473 
491 
     | 
    
         
             
                      position: nil,
         
     | 
| 
      
 492 
     | 
    
         
            +
                      strict: nil,
         
     | 
| 
       474 
493 
     | 
    
         
             
                      timeout: nil,
         
     | 
| 
       475 
494 
     | 
    
         
             
                      trial: nil)
         
     | 
| 
       476 
495 
     | 
    
         
             
                  @main_frame.dblclick(
         
     | 
| 
         @@ -481,6 +500,7 @@ module Playwright 
     | 
|
| 
       481 
500 
     | 
    
         
             
                    modifiers: modifiers,
         
     | 
| 
       482 
501 
     | 
    
         
             
                    noWaitAfter: noWaitAfter,
         
     | 
| 
       483 
502 
     | 
    
         
             
                    position: position,
         
     | 
| 
      
 503 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
       484 
504 
     | 
    
         
             
                    timeout: timeout,
         
     | 
| 
       485 
505 
     | 
    
         
             
                    trial: trial,
         
     | 
| 
       486 
506 
     | 
    
         
             
                  )
         
     | 
| 
         @@ -492,6 +512,7 @@ module Playwright 
     | 
|
| 
       492 
512 
     | 
    
         
             
                      modifiers: nil,
         
     | 
| 
       493 
513 
     | 
    
         
             
                      noWaitAfter: nil,
         
     | 
| 
       494 
514 
     | 
    
         
             
                      position: nil,
         
     | 
| 
      
 515 
     | 
    
         
            +
                      strict: nil,
         
     | 
| 
       495 
516 
     | 
    
         
             
                      timeout: nil,
         
     | 
| 
       496 
517 
     | 
    
         
             
                      trial: nil)
         
     | 
| 
       497 
518 
     | 
    
         
             
                  @main_frame.tap_point(
         
     | 
| 
         @@ -500,33 +521,46 @@ module Playwright 
     | 
|
| 
       500 
521 
     | 
    
         
             
                    modifiers: modifiers,
         
     | 
| 
       501 
522 
     | 
    
         
             
                    noWaitAfter: noWaitAfter,
         
     | 
| 
       502 
523 
     | 
    
         
             
                    position: position,
         
     | 
| 
      
 524 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
       503 
525 
     | 
    
         
             
                    timeout: timeout,
         
     | 
| 
       504 
526 
     | 
    
         
             
                    trial: trial,
         
     | 
| 
       505 
527 
     | 
    
         
             
                  )
         
     | 
| 
       506 
528 
     | 
    
         
             
                end
         
     | 
| 
       507 
529 
     | 
    
         | 
| 
       508 
     | 
    
         
            -
                def fill( 
     | 
| 
       509 
     | 
    
         
            -
                   
     | 
| 
      
 530 
     | 
    
         
            +
                def fill(
         
     | 
| 
      
 531 
     | 
    
         
            +
                  selector,
         
     | 
| 
      
 532 
     | 
    
         
            +
                  value,
         
     | 
| 
      
 533 
     | 
    
         
            +
                  force: nil,
         
     | 
| 
      
 534 
     | 
    
         
            +
                  noWaitAfter: nil,
         
     | 
| 
      
 535 
     | 
    
         
            +
                  strict: nil,
         
     | 
| 
      
 536 
     | 
    
         
            +
                  timeout: nil)
         
     | 
| 
      
 537 
     | 
    
         
            +
                  @main_frame.fill(
         
     | 
| 
      
 538 
     | 
    
         
            +
                    selector,
         
     | 
| 
      
 539 
     | 
    
         
            +
                    value,
         
     | 
| 
      
 540 
     | 
    
         
            +
                    force: force,
         
     | 
| 
      
 541 
     | 
    
         
            +
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 542 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
      
 543 
     | 
    
         
            +
                    timeout: timeout)
         
     | 
| 
       510 
544 
     | 
    
         
             
                end
         
     | 
| 
       511 
545 
     | 
    
         | 
| 
       512 
     | 
    
         
            -
                def focus(selector, timeout: nil)
         
     | 
| 
       513 
     | 
    
         
            -
                  @main_frame.focus(selector, timeout: timeout)
         
     | 
| 
      
 546 
     | 
    
         
            +
                def focus(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 547 
     | 
    
         
            +
                  @main_frame.focus(selector, strict: strict, timeout: timeout)
         
     | 
| 
       514 
548 
     | 
    
         
             
                end
         
     | 
| 
       515 
549 
     | 
    
         | 
| 
       516 
     | 
    
         
            -
                def text_content(selector, timeout: nil)
         
     | 
| 
       517 
     | 
    
         
            -
                  @main_frame.text_content(selector, timeout: timeout)
         
     | 
| 
      
 550 
     | 
    
         
            +
                def text_content(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 551 
     | 
    
         
            +
                  @main_frame.text_content(selector, strict: strict, timeout: timeout)
         
     | 
| 
       518 
552 
     | 
    
         
             
                end
         
     | 
| 
       519 
553 
     | 
    
         | 
| 
       520 
     | 
    
         
            -
                def inner_text(selector, timeout: nil)
         
     | 
| 
       521 
     | 
    
         
            -
                  @main_frame.inner_text(selector, timeout: timeout)
         
     | 
| 
      
 554 
     | 
    
         
            +
                def inner_text(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 555 
     | 
    
         
            +
                  @main_frame.inner_text(selector, strict: strict, timeout: timeout)
         
     | 
| 
       522 
556 
     | 
    
         
             
                end
         
     | 
| 
       523 
557 
     | 
    
         | 
| 
       524 
     | 
    
         
            -
                def inner_html(selector, timeout: nil)
         
     | 
| 
       525 
     | 
    
         
            -
                  @main_frame.inner_html(selector, timeout: timeout)
         
     | 
| 
      
 558 
     | 
    
         
            +
                def inner_html(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 559 
     | 
    
         
            +
                  @main_frame.inner_html(selector, strict: strict, timeout: timeout)
         
     | 
| 
       526 
560 
     | 
    
         
             
                end
         
     | 
| 
       527 
561 
     | 
    
         | 
| 
       528 
     | 
    
         
            -
                def get_attribute(selector, name, timeout: nil)
         
     | 
| 
       529 
     | 
    
         
            -
                  @main_frame.get_attribute(selector, name, timeout: timeout)
         
     | 
| 
      
 562 
     | 
    
         
            +
                def get_attribute(selector, name, strict: nil, timeout: nil)
         
     | 
| 
      
 563 
     | 
    
         
            +
                  @main_frame.get_attribute(selector, name, strict: strict, timeout: timeout)
         
     | 
| 
       530 
564 
     | 
    
         
             
                end
         
     | 
| 
       531 
565 
     | 
    
         | 
| 
       532 
566 
     | 
    
         
             
                def hover(
         
     | 
| 
         @@ -534,6 +568,7 @@ module Playwright 
     | 
|
| 
       534 
568 
     | 
    
         
             
                      force: nil,
         
     | 
| 
       535 
569 
     | 
    
         
             
                      modifiers: nil,
         
     | 
| 
       536 
570 
     | 
    
         
             
                      position: nil,
         
     | 
| 
      
 571 
     | 
    
         
            +
                      strict: nil,
         
     | 
| 
       537 
572 
     | 
    
         
             
                      timeout: nil,
         
     | 
| 
       538 
573 
     | 
    
         
             
                      trial: nil)
         
     | 
| 
       539 
574 
     | 
    
         
             
                  @main_frame.hover(
         
     | 
| 
         @@ -541,6 +576,7 @@ module Playwright 
     | 
|
| 
       541 
576 
     | 
    
         
             
                    force: force,
         
     | 
| 
       542 
577 
     | 
    
         
             
                    modifiers: modifiers,
         
     | 
| 
       543 
578 
     | 
    
         
             
                    position: position,
         
     | 
| 
      
 579 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
       544 
580 
     | 
    
         
             
                    timeout: timeout,
         
     | 
| 
       545 
581 
     | 
    
         
             
                    trial: trial,
         
     | 
| 
       546 
582 
     | 
    
         
             
                  )
         
     | 
| 
         @@ -552,7 +588,9 @@ module Playwright 
     | 
|
| 
       552 
588 
     | 
    
         
             
                      index: nil,
         
     | 
| 
       553 
589 
     | 
    
         
             
                      value: nil,
         
     | 
| 
       554 
590 
     | 
    
         
             
                      label: nil,
         
     | 
| 
      
 591 
     | 
    
         
            +
                      force: nil,
         
     | 
| 
       555 
592 
     | 
    
         
             
                      noWaitAfter: nil,
         
     | 
| 
      
 593 
     | 
    
         
            +
                      strict: nil,
         
     | 
| 
       556 
594 
     | 
    
         
             
                      timeout: nil)
         
     | 
| 
       557 
595 
     | 
    
         
             
                  @main_frame.select_option(
         
     | 
| 
       558 
596 
     | 
    
         
             
                    selector,
         
     | 
| 
         @@ -560,13 +598,24 @@ module Playwright 
     | 
|
| 
       560 
598 
     | 
    
         
             
                    index: index,
         
     | 
| 
       561 
599 
     | 
    
         
             
                    value: value,
         
     | 
| 
       562 
600 
     | 
    
         
             
                    label: label,
         
     | 
| 
      
 601 
     | 
    
         
            +
                    force: force,
         
     | 
| 
       563 
602 
     | 
    
         
             
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 603 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
       564 
604 
     | 
    
         
             
                    timeout: timeout,
         
     | 
| 
       565 
605 
     | 
    
         
             
                  )
         
     | 
| 
       566 
606 
     | 
    
         
             
                end
         
     | 
| 
       567 
607 
     | 
    
         | 
| 
       568 
     | 
    
         
            -
                def  
     | 
| 
       569 
     | 
    
         
            -
                  @main_frame. 
     | 
| 
      
 608 
     | 
    
         
            +
                def input_value(selector, strict: nil, timeout: nil)
         
     | 
| 
      
 609 
     | 
    
         
            +
                  @main_frame.input_value(selector, strict: strict, timeout: timeout)
         
     | 
| 
      
 610 
     | 
    
         
            +
                end
         
     | 
| 
      
 611 
     | 
    
         
            +
             
     | 
| 
      
 612 
     | 
    
         
            +
                def set_input_files(selector, files, noWaitAfter: nil, strict: nil,timeout: nil)
         
     | 
| 
      
 613 
     | 
    
         
            +
                  @main_frame.set_input_files(
         
     | 
| 
      
 614 
     | 
    
         
            +
                    selector,
         
     | 
| 
      
 615 
     | 
    
         
            +
                    files,
         
     | 
| 
      
 616 
     | 
    
         
            +
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 617 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
      
 618 
     | 
    
         
            +
                    timeout: timeout)
         
     | 
| 
       570 
619 
     | 
    
         
             
                end
         
     | 
| 
       571 
620 
     | 
    
         | 
| 
       572 
621 
     | 
    
         
             
                def type(
         
     | 
| 
         @@ -574,9 +623,16 @@ module Playwright 
     | 
|
| 
       574 
623 
     | 
    
         
             
                  text,
         
     | 
| 
       575 
624 
     | 
    
         
             
                  delay: nil,
         
     | 
| 
       576 
625 
     | 
    
         
             
                  noWaitAfter: nil,
         
     | 
| 
      
 626 
     | 
    
         
            +
                  strict: nil,
         
     | 
| 
       577 
627 
     | 
    
         
             
                  timeout: nil)
         
     | 
| 
       578 
628 
     | 
    
         | 
| 
       579 
     | 
    
         
            -
                  @main_frame.type( 
     | 
| 
      
 629 
     | 
    
         
            +
                  @main_frame.type(
         
     | 
| 
      
 630 
     | 
    
         
            +
                    selector,
         
     | 
| 
      
 631 
     | 
    
         
            +
                    text,
         
     | 
| 
      
 632 
     | 
    
         
            +
                    delay: delay,
         
     | 
| 
      
 633 
     | 
    
         
            +
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 634 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
      
 635 
     | 
    
         
            +
                    timeout: timeout)
         
     | 
| 
       580 
636 
     | 
    
         
             
                end
         
     | 
| 
       581 
637 
     | 
    
         | 
| 
       582 
638 
     | 
    
         
             
                def press(
         
     | 
| 
         @@ -584,9 +640,16 @@ module Playwright 
     | 
|
| 
       584 
640 
     | 
    
         
             
                  key,
         
     | 
| 
       585 
641 
     | 
    
         
             
                  delay: nil,
         
     | 
| 
       586 
642 
     | 
    
         
             
                  noWaitAfter: nil,
         
     | 
| 
      
 643 
     | 
    
         
            +
                  strict: nil,
         
     | 
| 
       587 
644 
     | 
    
         
             
                  timeout: nil)
         
     | 
| 
       588 
645 
     | 
    
         | 
| 
       589 
     | 
    
         
            -
                  @main_frame.press( 
     | 
| 
      
 646 
     | 
    
         
            +
                  @main_frame.press(
         
     | 
| 
      
 647 
     | 
    
         
            +
                    selector,
         
     | 
| 
      
 648 
     | 
    
         
            +
                    key,
         
     | 
| 
      
 649 
     | 
    
         
            +
                    delay: delay,
         
     | 
| 
      
 650 
     | 
    
         
            +
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 651 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
      
 652 
     | 
    
         
            +
                    timeout: timeout)
         
     | 
| 
       590 
653 
     | 
    
         
             
                end
         
     | 
| 
       591 
654 
     | 
    
         | 
| 
       592 
655 
     | 
    
         
             
                def check(
         
     | 
| 
         @@ -594,10 +657,18 @@ module Playwright 
     | 
|
| 
       594 
657 
     | 
    
         
             
                  force: nil,
         
     | 
| 
       595 
658 
     | 
    
         
             
                  noWaitAfter: nil,
         
     | 
| 
       596 
659 
     | 
    
         
             
                  position: nil,
         
     | 
| 
      
 660 
     | 
    
         
            +
                  strict: nil,
         
     | 
| 
       597 
661 
     | 
    
         
             
                  timeout: nil,
         
     | 
| 
       598 
662 
     | 
    
         
             
                  trial: nil)
         
     | 
| 
       599 
663 
     | 
    
         | 
| 
       600 
     | 
    
         
            -
                  @main_frame.check( 
     | 
| 
      
 664 
     | 
    
         
            +
                  @main_frame.check(
         
     | 
| 
      
 665 
     | 
    
         
            +
                    selector,
         
     | 
| 
      
 666 
     | 
    
         
            +
                    force: force,
         
     | 
| 
      
 667 
     | 
    
         
            +
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 668 
     | 
    
         
            +
                    position: position,
         
     | 
| 
      
 669 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
      
 670 
     | 
    
         
            +
                    timeout: timeout,
         
     | 
| 
      
 671 
     | 
    
         
            +
                    trial: trial)
         
     | 
| 
       601 
672 
     | 
    
         
             
                end
         
     | 
| 
       602 
673 
     | 
    
         | 
| 
       603 
674 
     | 
    
         
             
                def uncheck(
         
     | 
| 
         @@ -605,16 +676,28 @@ module Playwright 
     | 
|
| 
       605 
676 
     | 
    
         
             
                  force: nil,
         
     | 
| 
       606 
677 
     | 
    
         
             
                  noWaitAfter: nil,
         
     | 
| 
       607 
678 
     | 
    
         
             
                  position: nil,
         
     | 
| 
      
 679 
     | 
    
         
            +
                  strict: nil,
         
     | 
| 
       608 
680 
     | 
    
         
             
                  timeout: nil,
         
     | 
| 
       609 
681 
     | 
    
         
             
                  trial: nil)
         
     | 
| 
       610 
682 
     | 
    
         | 
| 
       611 
     | 
    
         
            -
                  @main_frame.uncheck( 
     | 
| 
      
 683 
     | 
    
         
            +
                  @main_frame.uncheck(
         
     | 
| 
      
 684 
     | 
    
         
            +
                    selector,
         
     | 
| 
      
 685 
     | 
    
         
            +
                    force: force,
         
     | 
| 
      
 686 
     | 
    
         
            +
                    noWaitAfter: noWaitAfter,
         
     | 
| 
      
 687 
     | 
    
         
            +
                    position: position,
         
     | 
| 
      
 688 
     | 
    
         
            +
                    strict: strict,
         
     | 
| 
      
 689 
     | 
    
         
            +
                    timeout: timeout,
         
     | 
| 
      
 690 
     | 
    
         
            +
                    trial: trial)
         
     | 
| 
       612 
691 
     | 
    
         
             
                end
         
     | 
| 
       613 
692 
     | 
    
         | 
| 
       614 
693 
     | 
    
         
             
                def wait_for_function(pageFunction, arg: nil, polling: nil, timeout: nil)
         
     | 
| 
       615 
694 
     | 
    
         
             
                  @main_frame.wait_for_function(pageFunction, arg: arg, polling: polling, timeout: timeout)
         
     | 
| 
       616 
695 
     | 
    
         
             
                end
         
     | 
| 
       617 
696 
     | 
    
         | 
| 
      
 697 
     | 
    
         
            +
                def pause
         
     | 
| 
      
 698 
     | 
    
         
            +
                  @browser_context.send(:pause)
         
     | 
| 
      
 699 
     | 
    
         
            +
                end
         
     | 
| 
      
 700 
     | 
    
         
            +
             
     | 
| 
       618 
701 
     | 
    
         
             
                def pdf(
         
     | 
| 
       619 
702 
     | 
    
         
             
                      displayHeaderFooter: nil,
         
     | 
| 
       620 
703 
     | 
    
         
             
                      footerTemplate: nil,
         
     | 
| 
         @@ -748,7 +831,7 @@ module Playwright 
     | 
|
| 
       748 
831 
     | 
    
         
             
                  predicate =
         
     | 
| 
       749 
832 
     | 
    
         
             
                    case urlOrPredicate
         
     | 
| 
       750 
833 
     | 
    
         
             
                    when String, Regexp
         
     | 
| 
       751 
     | 
    
         
            -
                      url_matcher = UrlMatcher.new(urlOrPredicate)
         
     | 
| 
      
 834 
     | 
    
         
            +
                      url_matcher = UrlMatcher.new(urlOrPredicate, base_url: @browser_context.send(:base_url))
         
     | 
| 
       752 
835 
     | 
    
         
             
                      -> (req){ url_matcher.match?(req.url) }
         
     | 
| 
       753 
836 
     | 
    
         
             
                    when Proc
         
     | 
| 
       754 
837 
     | 
    
         
             
                      urlOrPredicate
         
     | 
| 
         @@ -759,11 +842,15 @@ module Playwright 
     | 
|
| 
       759 
842 
     | 
    
         
             
                  expect_event(Events::Page::Request, predicate: predicate, timeout: timeout, &block)
         
     | 
| 
       760 
843 
     | 
    
         
             
                end
         
     | 
| 
       761 
844 
     | 
    
         | 
| 
      
 845 
     | 
    
         
            +
                def expect_request_finished(predicate: nil, timeout: nil, &block)
         
     | 
| 
      
 846 
     | 
    
         
            +
                  expect_event(Events::Page::RequestFinished, predicate: predicate, timeout: timeout, &block)
         
     | 
| 
      
 847 
     | 
    
         
            +
                end
         
     | 
| 
      
 848 
     | 
    
         
            +
             
     | 
| 
       762 
849 
     | 
    
         
             
                def expect_response(urlOrPredicate, timeout: nil, &block)
         
     | 
| 
       763 
850 
     | 
    
         
             
                  predicate =
         
     | 
| 
       764 
851 
     | 
    
         
             
                    case urlOrPredicate
         
     | 
| 
       765 
852 
     | 
    
         
             
                    when String, Regexp
         
     | 
| 
       766 
     | 
    
         
            -
                      url_matcher = UrlMatcher.new(urlOrPredicate)
         
     | 
| 
      
 853 
     | 
    
         
            +
                      url_matcher = UrlMatcher.new(urlOrPredicate, base_url: @browser_context.send(:base_url))
         
     | 
| 
       767 
854 
     | 
    
         
             
                      -> (req){ url_matcher.match?(req.url) }
         
     | 
| 
       768 
855 
     | 
    
         
             
                    when Proc
         
     | 
| 
       769 
856 
     | 
    
         
             
                      urlOrPredicate
         
     | 
| 
         @@ -4,7 +4,7 @@ require 'json' 
     | 
|
| 
       4 
4 
     | 
    
         
             
            module Playwright
         
     | 
| 
       5 
5 
     | 
    
         
             
              # @ref https://github.com/microsoft/playwright-python/blob/master/playwright/_impl/_network.py
         
     | 
| 
       6 
6 
     | 
    
         
             
              define_channel_owner :Response do
         
     | 
| 
       7 
     | 
    
         
            -
                def after_initialize
         
     | 
| 
      
 7 
     | 
    
         
            +
                private def after_initialize
         
     | 
| 
       8 
8 
     | 
    
         
             
                  @request = ChannelOwners::Request.from(@initializer['request'])
         
     | 
| 
       9 
9 
     | 
    
         
             
                  timing = @initializer['timing']
         
     | 
| 
       10 
10 
     | 
    
         
             
                  @request.send(:update_timings,
         
     | 
| 
         @@ -44,6 +44,14 @@ module Playwright 
     | 
|
| 
       44 
44 
     | 
    
         
             
                  end.to_h
         
     | 
| 
       45 
45 
     | 
    
         
             
                end
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
      
 47 
     | 
    
         
            +
                def server_addr
         
     | 
| 
      
 48 
     | 
    
         
            +
                  @channel.send_message_to_server('serverAddr')
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                def security_details
         
     | 
| 
      
 52 
     | 
    
         
            +
                  @channel.send_message_to_server('securityDetails')
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
       47 
55 
     | 
    
         
             
                def finished
         
     | 
| 
       48 
56 
     | 
    
         
             
                  @channel.send_message_to_server('finished')
         
     | 
| 
       49 
57 
     | 
    
         
             
                end
         
     | 
| 
         @@ -5,10 +5,8 @@ module Playwright 
     | 
|
| 
       5 
5 
     | 
    
         
             
              # https://github.com/microsoft/playwright-python/blob/master/playwright/_impl/_connection.py
         
     | 
| 
       6 
6 
     | 
    
         
             
              # https://github.com/microsoft/playwright-java/blob/master/playwright/src/main/java/com/microsoft/playwright/impl/Connection.java
         
     | 
| 
       7 
7 
     | 
    
         
             
              class Connection
         
     | 
| 
       8 
     | 
    
         
            -
                def initialize( 
     | 
| 
       9 
     | 
    
         
            -
                  @transport =  
     | 
| 
       10 
     | 
    
         
            -
                    playwright_cli_executable_path: playwright_cli_executable_path
         
     | 
| 
       11 
     | 
    
         
            -
                  )
         
     | 
| 
      
 8 
     | 
    
         
            +
                def initialize(transport)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @transport = transport
         
     | 
| 
       12 
10 
     | 
    
         
             
                  @transport.on_message_received do |message|
         
     | 
| 
       13 
11 
     | 
    
         
             
                    dispatch(message)
         
     | 
| 
       14 
12 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Playwright
         
     | 
| 
       2 
     | 
    
         
            -
               
     | 
| 
      
 2 
     | 
    
         
            +
              define_api_implementation :DownloadImpl do
         
     | 
| 
       3 
3 
     | 
    
         
             
                def initialize(page:, url:, suggested_filename:, artifact:)
         
     | 
| 
       4 
4 
     | 
    
         
             
                  @page = page
         
     | 
| 
       5 
5 
     | 
    
         
             
                  @url = url
         
     | 
| 
         @@ -24,5 +24,9 @@ module Playwright 
     | 
|
| 
       24 
24 
     | 
    
         
             
                def save_as(path)
         
     | 
| 
       25 
25 
     | 
    
         
             
                  @artifact.save_as(path)
         
     | 
| 
       26 
26 
     | 
    
         
             
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                def cancel
         
     | 
| 
      
 29 
     | 
    
         
            +
                  @artifact.cancel
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
       27 
31 
     | 
    
         
             
              end
         
     | 
| 
       28 
32 
     | 
    
         
             
            end
         
     |