playwright-ruby-client 0.8.0 → 1.14.beta2
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/documentation/docs/api/accessibility.md +52 -1
 - data/documentation/docs/api/browser.md +8 -2
 - data/documentation/docs/api/browser_context.md +28 -0
 - data/documentation/docs/api/browser_type.md +1 -0
 - data/documentation/docs/api/download.md +97 -0
 - data/documentation/docs/api/element_handle.md +28 -3
 - data/documentation/docs/api/experimental/android_device.md +1 -0
 - data/documentation/docs/api/frame.md +78 -18
 - data/documentation/docs/api/keyboard.md +11 -20
 - data/documentation/docs/api/locator.md +650 -0
 - data/documentation/docs/api/page.md +124 -20
 - data/documentation/docs/api/touchscreen.md +8 -0
 - data/documentation/docs/api/worker.md +37 -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/semi_automation.md +5 -1
 - data/documentation/docs/include/api_coverage.md +72 -15
 - data/lib/playwright.rb +0 -1
 - data/lib/playwright/accessibility_impl.rb +50 -0
 - data/lib/playwright/channel_owners/artifact.rb +4 -0
 - data/lib/playwright/channel_owners/browser_context.rb +77 -3
 - data/lib/playwright/channel_owners/frame.rb +101 -35
 - data/lib/playwright/channel_owners/page.rb +157 -56
 - data/lib/playwright/channel_owners/worker.rb +23 -0
 - 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/touchscreen_impl.rb +7 -0
 - data/lib/playwright/tracing_impl.rb +9 -8
 - data/lib/playwright/url_matcher.rb +12 -2
 - data/lib/playwright/version.rb +2 -2
 - data/lib/playwright_api/accessibility.rb +1 -1
 - data/lib/playwright_api/android.rb +6 -6
 - data/lib/playwright_api/android_device.rb +8 -7
 - data/lib/playwright_api/browser.rb +16 -10
 - data/lib/playwright_api/browser_context.rb +16 -11
 - data/lib/playwright_api/browser_type.rb +8 -7
 - data/lib/playwright_api/cdp_session.rb +6 -6
 - 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 +34 -20
 - data/lib/playwright_api/frame.rb +94 -52
 - data/lib/playwright_api/js_handle.rb +6 -6
 - data/lib/playwright_api/locator.rb +509 -0
 - data/lib/playwright_api/page.rb +101 -57
 - data/lib/playwright_api/playwright.rb +6 -6
 - data/lib/playwright_api/request.rb +6 -6
 - data/lib/playwright_api/response.rb +6 -6
 - data/lib/playwright_api/route.rb +6 -11
 - data/lib/playwright_api/selectors.rb +6 -6
 - data/lib/playwright_api/touchscreen.rb +1 -1
 - data/lib/playwright_api/web_socket.rb +6 -6
 - data/lib/playwright_api/worker.rb +16 -6
 - metadata +14 -6
 
| 
         @@ -1,19 +1,29 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Playwright
         
     | 
| 
       2 
2 
     | 
    
         
             
              class UrlMatcher
         
     | 
| 
       3 
3 
     | 
    
         
             
                # @param url [String|Regexp]
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 4 
     | 
    
         
            +
                # @param base_url [String|nil]
         
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize(url, base_url:)
         
     | 
| 
       5 
6 
     | 
    
         
             
                  @url = url
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @base_url = base_url
         
     | 
| 
       6 
8 
     | 
    
         
             
                end
         
     | 
| 
       7 
9 
     | 
    
         | 
| 
       8 
10 
     | 
    
         
             
                def match?(target_url)
         
     | 
| 
       9 
11 
     | 
    
         
             
                  case @url
         
     | 
| 
       10 
12 
     | 
    
         
             
                  when String
         
     | 
| 
       11 
     | 
    
         
            -
                     
     | 
| 
      
 13 
     | 
    
         
            +
                    joined_url == target_url || File.fnmatch?(@url, target_url)
         
     | 
| 
       12 
14 
     | 
    
         
             
                  when Regexp
         
     | 
| 
       13 
15 
     | 
    
         
             
                    @url.match?(target_url)
         
     | 
| 
       14 
16 
     | 
    
         
             
                  else
         
     | 
| 
       15 
17 
     | 
    
         
             
                    false
         
     | 
| 
       16 
18 
     | 
    
         
             
                  end
         
     | 
| 
       17 
19 
     | 
    
         
             
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                private def joined_url
         
     | 
| 
      
 22 
     | 
    
         
            +
                  if @base_url && !@url.start_with?('*')
         
     | 
| 
      
 23 
     | 
    
         
            +
                    URI.join(@base_url, @url).to_s
         
     | 
| 
      
 24 
     | 
    
         
            +
                  else
         
     | 
| 
      
 25 
     | 
    
         
            +
                    @url
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
       18 
28 
     | 
    
         
             
              end
         
     | 
| 
       19 
29 
     | 
    
         
             
            end
         
     | 
    
        data/lib/playwright/version.rb
    CHANGED
    
    
| 
         @@ -44,7 +44,7 @@ module Playwright 
     | 
|
| 
       44 
44 
     | 
    
         
             
                #     print(node["name"])
         
     | 
| 
       45 
45 
     | 
    
         
             
                # ```
         
     | 
| 
       46 
46 
     | 
    
         
             
                def snapshot(interestingOnly: nil, root: nil)
         
     | 
| 
       47 
     | 
    
         
            -
                   
     | 
| 
      
 47 
     | 
    
         
            +
                  wrap_impl(@impl.snapshot(interestingOnly: unwrap_impl(interestingOnly), root: unwrap_impl(root)))
         
     | 
| 
       48 
48 
     | 
    
         
             
                end
         
     | 
| 
       49 
49 
     | 
    
         
             
              end
         
     | 
| 
       50 
50 
     | 
    
         
             
            end
         
     | 
| 
         @@ -23,12 +23,6 @@ module Playwright 
     | 
|
| 
       23 
23 
     | 
    
         
             
                end
         
     | 
| 
       24 
24 
     | 
    
         
             
                alias_method :default_timeout=, :set_default_timeout
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       27 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       28 
     | 
    
         
            -
                def off(event, callback)
         
     | 
| 
       29 
     | 
    
         
            -
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
       30 
     | 
    
         
            -
                end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
26 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
       33 
27 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       34 
28 
     | 
    
         
             
                def once(event, callback)
         
     | 
| 
         @@ -41,6 +35,12 @@ module Playwright 
     | 
|
| 
       41 
35 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       42 
36 
     | 
    
         
             
                end
         
     | 
| 
       43 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 39 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 40 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
       44 
44 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       45 
45 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       46 
46 
     | 
    
         
             
                end
         
     | 
| 
         @@ -40,6 +40,7 @@ module Playwright 
     | 
|
| 
       40 
40 
     | 
    
         
             
                # Launches Chrome browser on the device, and returns its persistent context.
         
     | 
| 
       41 
41 
     | 
    
         
             
                def launch_browser(
         
     | 
| 
       42 
42 
     | 
    
         
             
                      acceptDownloads: nil,
         
     | 
| 
      
 43 
     | 
    
         
            +
                      baseURL: nil,
         
     | 
| 
       43 
44 
     | 
    
         
             
                      bypassCSP: nil,
         
     | 
| 
       44 
45 
     | 
    
         
             
                      colorScheme: nil,
         
     | 
| 
       45 
46 
     | 
    
         
             
                      command: nil,
         
     | 
| 
         @@ -65,7 +66,7 @@ module Playwright 
     | 
|
| 
       65 
66 
     | 
    
         
             
                      userAgent: nil,
         
     | 
| 
       66 
67 
     | 
    
         
             
                      viewport: nil,
         
     | 
| 
       67 
68 
     | 
    
         
             
                      &block)
         
     | 
| 
       68 
     | 
    
         
            -
                  wrap_impl(@impl.launch_browser(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), command: unwrap_impl(command), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
      
 69 
     | 
    
         
            +
                  wrap_impl(@impl.launch_browser(acceptDownloads: unwrap_impl(acceptDownloads), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), command: unwrap_impl(command), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
       69 
70 
     | 
    
         
             
                end
         
     | 
| 
       70 
71 
     | 
    
         | 
| 
       71 
72 
     | 
    
         
             
                # Performs a long tap on the widget defined by `selector`.
         
     | 
| 
         @@ -171,12 +172,6 @@ module Playwright 
     | 
|
| 
       171 
172 
     | 
    
         
             
                  wrap_impl(@impl.tree)
         
     | 
| 
       172 
173 
     | 
    
         
             
                end
         
     | 
| 
       173 
174 
     | 
    
         | 
| 
       174 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       175 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       176 
     | 
    
         
            -
                def off(event, callback)
         
     | 
| 
       177 
     | 
    
         
            -
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
       178 
     | 
    
         
            -
                end
         
     | 
| 
       179 
     | 
    
         
            -
             
     | 
| 
       180 
175 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
       181 
176 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       182 
177 
     | 
    
         
             
                def once(event, callback)
         
     | 
| 
         @@ -189,6 +184,12 @@ module Playwright 
     | 
|
| 
       189 
184 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       190 
185 
     | 
    
         
             
                end
         
     | 
| 
       191 
186 
     | 
    
         | 
| 
      
 187 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 188 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 189 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 190 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 191 
     | 
    
         
            +
                end
         
     | 
| 
      
 192 
     | 
    
         
            +
             
     | 
| 
       192 
193 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       193 
194 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       194 
195 
     | 
    
         
             
                end
         
     | 
| 
         @@ -65,6 +65,7 @@ module Playwright 
     | 
|
| 
       65 
65 
     | 
    
         
             
                # ```
         
     | 
| 
       66 
66 
     | 
    
         
             
                def new_context(
         
     | 
| 
       67 
67 
     | 
    
         
             
                      acceptDownloads: nil,
         
     | 
| 
      
 68 
     | 
    
         
            +
                      baseURL: nil,
         
     | 
| 
       68 
69 
     | 
    
         
             
                      bypassCSP: nil,
         
     | 
| 
       69 
70 
     | 
    
         
             
                      colorScheme: nil,
         
     | 
| 
       70 
71 
     | 
    
         
             
                      deviceScaleFactor: nil,
         
     | 
| 
         @@ -91,7 +92,7 @@ module Playwright 
     | 
|
| 
       91 
92 
     | 
    
         
             
                      userAgent: nil,
         
     | 
| 
       92 
93 
     | 
    
         
             
                      viewport: nil,
         
     | 
| 
       93 
94 
     | 
    
         
             
                      &block)
         
     | 
| 
       94 
     | 
    
         
            -
                  wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
      
 95 
     | 
    
         
            +
                  wrap_impl(@impl.new_context(acceptDownloads: unwrap_impl(acceptDownloads), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
       95 
96 
     | 
    
         
             
                end
         
     | 
| 
       96 
97 
     | 
    
         | 
| 
       97 
98 
     | 
    
         
             
                # Creates a new page in a new browser context. Closing this page will close the context as well.
         
     | 
| 
         @@ -101,6 +102,7 @@ module Playwright 
     | 
|
| 
       101 
102 
     | 
    
         
             
                # [`method: BrowserContext.newPage`] to control their exact life times.
         
     | 
| 
       102 
103 
     | 
    
         
             
                def new_page(
         
     | 
| 
       103 
104 
     | 
    
         
             
                      acceptDownloads: nil,
         
     | 
| 
      
 105 
     | 
    
         
            +
                      baseURL: nil,
         
     | 
| 
       104 
106 
     | 
    
         
             
                      bypassCSP: nil,
         
     | 
| 
       105 
107 
     | 
    
         
             
                      colorScheme: nil,
         
     | 
| 
       106 
108 
     | 
    
         
             
                      deviceScaleFactor: nil,
         
     | 
| 
         @@ -127,10 +129,12 @@ module Playwright 
     | 
|
| 
       127 
129 
     | 
    
         
             
                      userAgent: nil,
         
     | 
| 
       128 
130 
     | 
    
         
             
                      viewport: nil,
         
     | 
| 
       129 
131 
     | 
    
         
             
                      &block)
         
     | 
| 
       130 
     | 
    
         
            -
                  wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
      
 132 
     | 
    
         
            +
                  wrap_impl(@impl.new_page(acceptDownloads: unwrap_impl(acceptDownloads), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), hasTouch: unwrap_impl(hasTouch), httpCredentials: unwrap_impl(httpCredentials), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), storageState: unwrap_impl(storageState), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
       131 
133 
     | 
    
         
             
                end
         
     | 
| 
       132 
134 
     | 
    
         | 
| 
       133 
     | 
    
         
            -
                # > NOTE:  
     | 
| 
      
 135 
     | 
    
         
            +
                # > NOTE: This API controls [Chromium Tracing](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool)
         
     | 
| 
      
 136 
     | 
    
         
            +
                # which is a low-level chromium-specific debugging tool. API to control [Playwright Tracing](../trace-viewer) could be
         
     | 
| 
      
 137 
     | 
    
         
            +
                # found [here](./class-tracing).
         
     | 
| 
       134 
138 
     | 
    
         
             
                #
         
     | 
| 
       135 
139 
     | 
    
         
             
                # You can use [`method: Browser.startTracing`] and [`method: Browser.stopTracing`] to create a trace file that can be
         
     | 
| 
       136 
140 
     | 
    
         
             
                # opened in Chrome DevTools performance panel.
         
     | 
| 
         @@ -144,7 +148,9 @@ module Playwright 
     | 
|
| 
       144 
148 
     | 
    
         
             
                  wrap_impl(@impl.start_tracing(page: unwrap_impl(page), categories: unwrap_impl(categories), path: unwrap_impl(path), screenshots: unwrap_impl(screenshots)))
         
     | 
| 
       145 
149 
     | 
    
         
             
                end
         
     | 
| 
       146 
150 
     | 
    
         | 
| 
       147 
     | 
    
         
            -
                # > NOTE:  
     | 
| 
      
 151 
     | 
    
         
            +
                # > NOTE: This API controls [Chromium Tracing](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool)
         
     | 
| 
      
 152 
     | 
    
         
            +
                # which is a low-level chromium-specific debugging tool. API to control [Playwright Tracing](../trace-viewer) could be
         
     | 
| 
      
 153 
     | 
    
         
            +
                # found [here](./class-tracing).
         
     | 
| 
       148 
154 
     | 
    
         
             
                #
         
     | 
| 
       149 
155 
     | 
    
         
             
                # Returns the buffer with trace data.
         
     | 
| 
       150 
156 
     | 
    
         
             
                def stop_tracing
         
     | 
| 
         @@ -156,12 +162,6 @@ module Playwright 
     | 
|
| 
       156 
162 
     | 
    
         
             
                  wrap_impl(@impl.version)
         
     | 
| 
       157 
163 
     | 
    
         
             
                end
         
     | 
| 
       158 
164 
     | 
    
         | 
| 
       159 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       160 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       161 
     | 
    
         
            -
                def off(event, callback)
         
     | 
| 
       162 
     | 
    
         
            -
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
       163 
     | 
    
         
            -
                end
         
     | 
| 
       164 
     | 
    
         
            -
             
     | 
| 
       165 
165 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
       166 
166 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       167 
167 
     | 
    
         
             
                def once(event, callback)
         
     | 
| 
         @@ -174,6 +174,12 @@ module Playwright 
     | 
|
| 
       174 
174 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       175 
175 
     | 
    
         
             
                end
         
     | 
| 
       176 
176 
     | 
    
         | 
| 
      
 177 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 178 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 179 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 180 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 181 
     | 
    
         
            +
                end
         
     | 
| 
      
 182 
     | 
    
         
            +
             
     | 
| 
       177 
183 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       178 
184 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       179 
185 
     | 
    
         
             
                end
         
     | 
| 
         @@ -59,7 +59,7 @@ module Playwright 
     | 
|
| 
       59 
59 
     | 
    
         
             
                #
         
     | 
| 
       60 
60 
     | 
    
         
             
                # All existing background pages in the context.
         
     | 
| 
       61 
61 
     | 
    
         
             
                def background_pages
         
     | 
| 
       62 
     | 
    
         
            -
                   
     | 
| 
      
 62 
     | 
    
         
            +
                  wrap_impl(@impl.background_pages)
         
     | 
| 
       63 
63 
     | 
    
         
             
                end
         
     | 
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
                # Returns the browser instance of the context. If it was launched as a persistent context null gets returned.
         
     | 
| 
         @@ -268,7 +268,7 @@ module Playwright 
     | 
|
| 
       268 
268 
     | 
    
         
             
                #
         
     | 
| 
       269 
269 
     | 
    
         
             
                # All existing service workers in the context.
         
     | 
| 
       270 
270 
     | 
    
         
             
                def service_workers
         
     | 
| 
       271 
     | 
    
         
            -
                   
     | 
| 
      
 271 
     | 
    
         
            +
                  wrap_impl(@impl.service_workers)
         
     | 
| 
       272 
272 
     | 
    
         
             
                end
         
     | 
| 
       273 
273 
     | 
    
         | 
| 
       274 
274 
     | 
    
         
             
                # This setting will change the default maximum navigation time for the following methods and related shortcuts:
         
     | 
| 
         @@ -325,7 +325,7 @@ module Playwright 
     | 
|
| 
       325 
325 
     | 
    
         | 
| 
       326 
326 
     | 
    
         
             
                # Returns storage state for this browser context, contains current cookies and local storage snapshot.
         
     | 
| 
       327 
327 
     | 
    
         
             
                def storage_state(path: nil)
         
     | 
| 
       328 
     | 
    
         
            -
                   
     | 
| 
      
 328 
     | 
    
         
            +
                  wrap_impl(@impl.storage_state(path: unwrap_impl(path)))
         
     | 
| 
       329 
329 
     | 
    
         
             
                end
         
     | 
| 
       330 
330 
     | 
    
         | 
| 
       331 
331 
     | 
    
         
             
                # Removes a route created with [`method: BrowserContext.route`]. When `handler` is not specified, removes all routes for
         
     | 
| 
         @@ -362,6 +362,11 @@ module Playwright 
     | 
|
| 
       362 
362 
     | 
    
         
             
                  raise NotImplementedError.new('wait_for_event is not implemented yet.')
         
     | 
| 
       363 
363 
     | 
    
         
             
                end
         
     | 
| 
       364 
364 
     | 
    
         | 
| 
      
 365 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 366 
     | 
    
         
            +
                def enable_debug_console!
         
     | 
| 
      
 367 
     | 
    
         
            +
                  wrap_impl(@impl.enable_debug_console!)
         
     | 
| 
      
 368 
     | 
    
         
            +
                end
         
     | 
| 
      
 369 
     | 
    
         
            +
             
     | 
| 
       365 
370 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       366 
371 
     | 
    
         
             
                def browser=(req)
         
     | 
| 
       367 
372 
     | 
    
         
             
                  wrap_impl(@impl.browser=(unwrap_impl(req)))
         
     | 
| 
         @@ -372,20 +377,14 @@ module Playwright 
     | 
|
| 
       372 
377 
     | 
    
         
             
                  wrap_impl(@impl.owner_page=(unwrap_impl(req)))
         
     | 
| 
       373 
378 
     | 
    
         
             
                end
         
     | 
| 
       374 
379 
     | 
    
         | 
| 
       375 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       376 
     | 
    
         
            -
                def options=(req)
         
     | 
| 
       377 
     | 
    
         
            -
                  wrap_impl(@impl.options=(unwrap_impl(req)))
         
     | 
| 
       378 
     | 
    
         
            -
                end
         
     | 
| 
       379 
     | 
    
         
            -
             
     | 
| 
       380 
380 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       381 
381 
     | 
    
         
             
                def pause
         
     | 
| 
       382 
382 
     | 
    
         
             
                  wrap_impl(@impl.pause)
         
     | 
| 
       383 
383 
     | 
    
         
             
                end
         
     | 
| 
       384 
384 
     | 
    
         | 
| 
       385 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       386 
385 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       387 
     | 
    
         
            -
                def  
     | 
| 
       388 
     | 
    
         
            -
                   
     | 
| 
      
 386 
     | 
    
         
            +
                def options=(req)
         
     | 
| 
      
 387 
     | 
    
         
            +
                  wrap_impl(@impl.options=(unwrap_impl(req)))
         
     | 
| 
       389 
388 
     | 
    
         
             
                end
         
     | 
| 
       390 
389 
     | 
    
         | 
| 
       391 
390 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
         @@ -400,6 +399,12 @@ module Playwright 
     | 
|
| 
       400 
399 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       401 
400 
     | 
    
         
             
                end
         
     | 
| 
       402 
401 
     | 
    
         | 
| 
      
 402 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 403 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 404 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 405 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 406 
     | 
    
         
            +
                end
         
     | 
| 
      
 407 
     | 
    
         
            +
             
     | 
| 
       403 
408 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       404 
409 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       405 
410 
     | 
    
         
             
                end
         
     | 
| 
         @@ -96,6 +96,7 @@ module Playwright 
     | 
|
| 
       96 
96 
     | 
    
         
             
                      userDataDir,
         
     | 
| 
       97 
97 
     | 
    
         
             
                      acceptDownloads: nil,
         
     | 
| 
       98 
98 
     | 
    
         
             
                      args: nil,
         
     | 
| 
      
 99 
     | 
    
         
            +
                      baseURL: nil,
         
     | 
| 
       99 
100 
     | 
    
         
             
                      bypassCSP: nil,
         
     | 
| 
       100 
101 
     | 
    
         
             
                      channel: nil,
         
     | 
| 
       101 
102 
     | 
    
         
             
                      chromiumSandbox: nil,
         
     | 
| 
         @@ -135,7 +136,7 @@ module Playwright 
     | 
|
| 
       135 
136 
     | 
    
         
             
                      userAgent: nil,
         
     | 
| 
       136 
137 
     | 
    
         
             
                      viewport: nil,
         
     | 
| 
       137 
138 
     | 
    
         
             
                      &block)
         
     | 
| 
       138 
     | 
    
         
            -
                  wrap_impl(@impl.launch_persistent_context(unwrap_impl(userDataDir), acceptDownloads: unwrap_impl(acceptDownloads), args: unwrap_impl(args), bypassCSP: unwrap_impl(bypassCSP), channel: unwrap_impl(channel), chromiumSandbox: unwrap_impl(chromiumSandbox), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), hasTouch: unwrap_impl(hasTouch), headless: unwrap_impl(headless), httpCredentials: unwrap_impl(httpCredentials), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), slowMo: unwrap_impl(slowMo), timeout: unwrap_impl(timeout), timezoneId: unwrap_impl(timezoneId), tracesDir: unwrap_impl(tracesDir), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
      
 139 
     | 
    
         
            +
                  wrap_impl(@impl.launch_persistent_context(unwrap_impl(userDataDir), acceptDownloads: unwrap_impl(acceptDownloads), args: unwrap_impl(args), baseURL: unwrap_impl(baseURL), bypassCSP: unwrap_impl(bypassCSP), channel: unwrap_impl(channel), chromiumSandbox: unwrap_impl(chromiumSandbox), colorScheme: unwrap_impl(colorScheme), deviceScaleFactor: unwrap_impl(deviceScaleFactor), devtools: unwrap_impl(devtools), downloadsPath: unwrap_impl(downloadsPath), env: unwrap_impl(env), executablePath: unwrap_impl(executablePath), extraHTTPHeaders: unwrap_impl(extraHTTPHeaders), geolocation: unwrap_impl(geolocation), handleSIGHUP: unwrap_impl(handleSIGHUP), handleSIGINT: unwrap_impl(handleSIGINT), handleSIGTERM: unwrap_impl(handleSIGTERM), hasTouch: unwrap_impl(hasTouch), headless: unwrap_impl(headless), httpCredentials: unwrap_impl(httpCredentials), ignoreDefaultArgs: unwrap_impl(ignoreDefaultArgs), ignoreHTTPSErrors: unwrap_impl(ignoreHTTPSErrors), isMobile: unwrap_impl(isMobile), javaScriptEnabled: unwrap_impl(javaScriptEnabled), locale: unwrap_impl(locale), noViewport: unwrap_impl(noViewport), offline: unwrap_impl(offline), permissions: unwrap_impl(permissions), proxy: unwrap_impl(proxy), record_har_omit_content: unwrap_impl(record_har_omit_content), record_har_path: unwrap_impl(record_har_path), record_video_dir: unwrap_impl(record_video_dir), record_video_size: unwrap_impl(record_video_size), reducedMotion: unwrap_impl(reducedMotion), screen: unwrap_impl(screen), slowMo: unwrap_impl(slowMo), timeout: unwrap_impl(timeout), timezoneId: unwrap_impl(timezoneId), tracesDir: unwrap_impl(tracesDir), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(viewport), &wrap_block_call(block)))
         
     | 
| 
       139 
140 
     | 
    
         
             
                end
         
     | 
| 
       140 
141 
     | 
    
         | 
| 
       141 
142 
     | 
    
         
             
                # Returns browser name. For example: `'chromium'`, `'webkit'` or `'firefox'`.
         
     | 
| 
         @@ -143,12 +144,6 @@ module Playwright 
     | 
|
| 
       143 
144 
     | 
    
         
             
                  wrap_impl(@impl.name)
         
     | 
| 
       144 
145 
     | 
    
         
             
                end
         
     | 
| 
       145 
146 
     | 
    
         | 
| 
       146 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       147 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       148 
     | 
    
         
            -
                def off(event, callback)
         
     | 
| 
       149 
     | 
    
         
            -
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
       150 
     | 
    
         
            -
                end
         
     | 
| 
       151 
     | 
    
         
            -
             
     | 
| 
       152 
147 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
       153 
148 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       154 
149 
     | 
    
         
             
                def once(event, callback)
         
     | 
| 
         @@ -161,6 +156,12 @@ module Playwright 
     | 
|
| 
       161 
156 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       162 
157 
     | 
    
         
             
                end
         
     | 
| 
       163 
158 
     | 
    
         | 
| 
      
 159 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 160 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 161 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 162 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 163 
     | 
    
         
            +
                end
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
       164 
165 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       165 
166 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       166 
167 
     | 
    
         
             
                end
         
     | 
| 
         @@ -33,12 +33,6 @@ module Playwright 
     | 
|
| 
       33 
33 
     | 
    
         
             
                  wrap_impl(@impl.send_message(unwrap_impl(method), params: unwrap_impl(params)))
         
     | 
| 
       34 
34 
     | 
    
         
             
                end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       37 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       38 
     | 
    
         
            -
                def off(event, callback)
         
     | 
| 
       39 
     | 
    
         
            -
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
       40 
     | 
    
         
            -
                end
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
36 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
       43 
37 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       44 
38 
     | 
    
         
             
                def once(event, callback)
         
     | 
| 
         @@ -51,6 +45,12 @@ module Playwright 
     | 
|
| 
       51 
45 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       52 
46 
     | 
    
         
             
                end
         
     | 
| 
       53 
47 
     | 
    
         | 
| 
      
 48 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 49 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 50 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
       54 
54 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       55 
55 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       56 
56 
     | 
    
         
             
                end
         
     | 
| 
         @@ -23,12 +23,6 @@ module Playwright 
     | 
|
| 
       23 
23 
     | 
    
         
             
                  wrap_impl(@impl.type)
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       27 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       28 
     | 
    
         
            -
                def off(event, callback)
         
     | 
| 
       29 
     | 
    
         
            -
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
       30 
     | 
    
         
            -
                end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
26 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
       33 
27 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       34 
28 
     | 
    
         
             
                def once(event, callback)
         
     | 
| 
         @@ -41,6 +35,12 @@ module Playwright 
     | 
|
| 
       41 
35 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       42 
36 
     | 
    
         
             
                end
         
     | 
| 
       43 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 39 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 40 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
       44 
44 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       45 
45 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       46 
46 
     | 
    
         
             
                end
         
     | 
| 
         @@ -58,12 +58,6 @@ module Playwright 
     | 
|
| 
       58 
58 
     | 
    
         
             
                  wrap_impl(@impl.accept_async(promptText: unwrap_impl(promptText)))
         
     | 
| 
       59 
59 
     | 
    
         
             
                end
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
                # -- inherited from EventEmitter --
         
     | 
| 
       62 
     | 
    
         
            -
                # @nodoc
         
     | 
| 
       63 
     | 
    
         
            -
                def off(event, callback)
         
     | 
| 
       64 
     | 
    
         
            -
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
       65 
     | 
    
         
            -
                end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
61 
     | 
    
         
             
                # -- inherited from EventEmitter --
         
     | 
| 
       68 
62 
     | 
    
         
             
                # @nodoc
         
     | 
| 
       69 
63 
     | 
    
         
             
                def once(event, callback)
         
     | 
| 
         @@ -76,6 +70,12 @@ module Playwright 
     | 
|
| 
       76 
70 
     | 
    
         
             
                  event_emitter_proxy.on(event, callback)
         
     | 
| 
       77 
71 
     | 
    
         
             
                end
         
     | 
| 
       78 
72 
     | 
    
         | 
| 
      
 73 
     | 
    
         
            +
                # -- inherited from EventEmitter --
         
     | 
| 
      
 74 
     | 
    
         
            +
                # @nodoc
         
     | 
| 
      
 75 
     | 
    
         
            +
                def off(event, callback)
         
     | 
| 
      
 76 
     | 
    
         
            +
                  event_emitter_proxy.off(event, callback)
         
     | 
| 
      
 77 
     | 
    
         
            +
                end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
       79 
79 
     | 
    
         
             
                private def event_emitter_proxy
         
     | 
| 
       80 
80 
     | 
    
         
             
                  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
         
     | 
| 
       81 
81 
     | 
    
         
             
                end
         
     | 
| 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Playwright
         
     | 
| 
      
 2 
     | 
    
         
            +
              # `Download` objects are dispatched by page via the [`event: Page.download`] event.
         
     | 
| 
      
 3 
     | 
    
         
            +
              #
         
     | 
| 
      
 4 
     | 
    
         
            +
              # All the downloaded files belonging to the browser context are deleted when the browser context is closed.
         
     | 
| 
      
 5 
     | 
    
         
            +
              #
         
     | 
| 
      
 6 
     | 
    
         
            +
              # Download event is emitted once the download starts. Download path becomes available once download completes:
         
     | 
| 
      
 7 
     | 
    
         
            +
              #
         
     | 
| 
      
 8 
     | 
    
         
            +
              # ```python sync
         
     | 
| 
      
 9 
     | 
    
         
            +
              # with page.expect_download() as download_info:
         
     | 
| 
      
 10 
     | 
    
         
            +
              #     page.click("a")
         
     | 
| 
      
 11 
     | 
    
         
            +
              # download = download_info.value
         
     | 
| 
      
 12 
     | 
    
         
            +
              # # wait for download to complete
         
     | 
| 
      
 13 
     | 
    
         
            +
              # path = download.path()
         
     | 
| 
      
 14 
     | 
    
         
            +
              # ```
         
     | 
| 
      
 15 
     | 
    
         
            +
              #
         
     | 
| 
      
 16 
     | 
    
         
            +
              # > NOTE: Browser context **must** be created with the `acceptDownloads` set to `true` when user needs access to the
         
     | 
| 
      
 17 
     | 
    
         
            +
              # downloaded content. If `acceptDownloads` is not set, download events are emitted, but the actual download is not
         
     | 
| 
      
 18 
     | 
    
         
            +
              # performed and user has no access to the downloaded files.
         
     | 
| 
      
 19 
     | 
    
         
            +
              class Download < PlaywrightApi
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                # Cancels a download. Will not fail if the download is already finished or canceled. Upon successful cancellations,
         
     | 
| 
      
 22 
     | 
    
         
            +
                # `download.failure()` would resolve to `'canceled'`.
         
     | 
| 
      
 23 
     | 
    
         
            +
                def cancel
         
     | 
| 
      
 24 
     | 
    
         
            +
                  wrap_impl(@impl.cancel)
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                # Deletes the downloaded file. Will wait for the download to finish if necessary.
         
     | 
| 
      
 28 
     | 
    
         
            +
                def delete
         
     | 
| 
      
 29 
     | 
    
         
            +
                  wrap_impl(@impl.delete)
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                # Returns download error if any. Will wait for the download to finish if necessary.
         
     | 
| 
      
 33 
     | 
    
         
            +
                def failure
         
     | 
| 
      
 34 
     | 
    
         
            +
                  wrap_impl(@impl.failure)
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                # Get the page that the download belongs to.
         
     | 
| 
      
 38 
     | 
    
         
            +
                def page
         
     | 
| 
      
 39 
     | 
    
         
            +
                  wrap_impl(@impl.page)
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                # Returns path to the downloaded file in case of successful download. The method will wait for the download to finish if
         
     | 
| 
      
 43 
     | 
    
         
            +
                # necessary. The method throws when connected remotely.
         
     | 
| 
      
 44 
     | 
    
         
            +
                #
         
     | 
| 
      
 45 
     | 
    
         
            +
                # Note that the download's file name is a random GUID, use [`method: Download.suggestedFilename`] to get suggested file
         
     | 
| 
      
 46 
     | 
    
         
            +
                # name.
         
     | 
| 
      
 47 
     | 
    
         
            +
                def path
         
     | 
| 
      
 48 
     | 
    
         
            +
                  wrap_impl(@impl.path)
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                # Copy the download to a user-specified path. It is safe to call this method while the download is still in progress. Will
         
     | 
| 
      
 52 
     | 
    
         
            +
                # wait for the download to finish if necessary.
         
     | 
| 
      
 53 
     | 
    
         
            +
                def save_as(path)
         
     | 
| 
      
 54 
     | 
    
         
            +
                  wrap_impl(@impl.save_as(unwrap_impl(path)))
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                # Returns suggested filename for this download. It is typically computed by the browser from the
         
     | 
| 
      
 58 
     | 
    
         
            +
                # [`Content-Disposition`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) response header
         
     | 
| 
      
 59 
     | 
    
         
            +
                # or the `download` attribute. See the spec on [whatwg](https://html.spec.whatwg.org/#downloading-resources). Different
         
     | 
| 
      
 60 
     | 
    
         
            +
                # browsers can use different logic for computing it.
         
     | 
| 
      
 61 
     | 
    
         
            +
                def suggested_filename
         
     | 
| 
      
 62 
     | 
    
         
            +
                  wrap_impl(@impl.suggested_filename)
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                # Returns downloaded url.
         
     | 
| 
      
 66 
     | 
    
         
            +
                def url
         
     | 
| 
      
 67 
     | 
    
         
            +
                  wrap_impl(@impl.url)
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
            end
         
     |