Class: Playwright::Browser
- Inherits:
-
PlaywrightApi
- Object
- PlaywrightApi
- Playwright::Browser
- Defined in:
- lib/playwright_api/browser.rb
Overview
-
extends: [EventEmitter]
A Browser is created via [`method: BrowserType.launch`]. An example of using a `Browser` to create a `Page`:
“`python sync from playwright.sync_api import sync_playwright
def run(playwright):
firefox = playwright.firefox
browser = firefox.launch()
page = browser.new_page()
page.goto("https://example.com")
browser.close()
with sync_playwright() as playwright:
run(playwright)
“`
Instance Method Summary collapse
-
#close ⇒ Object
In case this browser is obtained using [`method: BrowserType.launch`], closes the browser and all of its pages (if any were opened).
-
#connected? ⇒ Boolean
Indicates that the browser is connected.
-
#contexts ⇒ Object
Returns an array of all open browser contexts.
-
#new_browser_cdp_session ⇒ Object
> NOTE: CDP Sessions are only supported on Chromium-based browsers.
-
#new_context(acceptDownloads: nil, baseURL: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, forcedColors: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, noViewport: nil, offline: nil, permissions: nil, proxy: nil, record_har_omit_content: nil, record_har_path: nil, record_video_dir: nil, record_video_size: nil, reducedMotion: nil, screen: nil, storageState: nil, strictSelectors: nil, timezoneId: nil, userAgent: nil, viewport: nil, &block) ⇒ Object
Creates a new browser context.
-
#new_page(acceptDownloads: nil, baseURL: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, forcedColors: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, noViewport: nil, offline: nil, permissions: nil, proxy: nil, record_har_omit_content: nil, record_har_path: nil, record_video_dir: nil, record_video_size: nil, reducedMotion: nil, screen: nil, storageState: nil, strictSelectors: nil, timezoneId: nil, userAgent: nil, viewport: nil, &block) ⇒ Object
Creates a new page in a new browser context.
-
#off(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#on(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#once(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#start_tracing(page: nil, categories: nil, path: nil, screenshots: nil) ⇒ Object
> NOTE: This API controls [Chromium Tracing](www.chromium.org/developers/how-tos/trace-event-profiling-tool) which is a low-level chromium-specific debugging tool.
-
#stop_tracing ⇒ Object
> NOTE: This API controls [Chromium Tracing](www.chromium.org/developers/how-tos/trace-event-profiling-tool) which is a low-level chromium-specific debugging tool.
-
#version ⇒ Object
Returns the browser version.
Methods inherited from PlaywrightApi
Constructor Details
This class inherits a constructor from Playwright::PlaywrightApi
Instance Method Details
#close ⇒ Object
In case this browser is obtained using [`method: BrowserType.launch`], closes the browser and all of its pages (if any were opened).
In case this browser is connected to, clears all created contexts belonging to this browser and disconnects from the browser server.
The `Browser` object itself is considered to be disposed and cannot be used anymore.
28 29 30 |
# File 'lib/playwright_api/browser.rb', line 28 def close wrap_impl(@impl.close) end |
#connected? ⇒ Boolean
Indicates that the browser is connected.
45 46 47 |
# File 'lib/playwright_api/browser.rb', line 45 def connected? wrap_impl(@impl.connected?) end |
#contexts ⇒ Object
Returns an array of all open browser contexts. In a newly created browser, this will return zero browser contexts.
“`python sync browser = pw.webkit.launch() print(len(browser.contexts())) # prints `0` context = browser.new_context() print(len(browser.contexts())) # prints `1` “`
40 41 42 |
# File 'lib/playwright_api/browser.rb', line 40 def contexts wrap_impl(@impl.contexts) end |
#new_browser_cdp_session ⇒ Object
> NOTE: CDP Sessions are only supported on Chromium-based browsers.
Returns the newly created browser session.
52 53 54 |
# File 'lib/playwright_api/browser.rb', line 52 def new_browser_cdp_session wrap_impl(@impl.new_browser_cdp_session) end |
#new_context(acceptDownloads: nil, baseURL: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, forcedColors: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, noViewport: nil, offline: nil, permissions: nil, proxy: nil, record_har_omit_content: nil, record_har_path: nil, record_video_dir: nil, record_video_size: nil, reducedMotion: nil, screen: nil, storageState: nil, strictSelectors: nil, timezoneId: nil, userAgent: nil, viewport: nil, &block) ⇒ Object
Creates a new browser context. It won't share cookies/cache with other browser contexts.
“`python sync browser = playwright.firefox.launch() # or “chromium” or “webkit”. # create a new incognito browser context. context = browser.new_context() # create a new page in a pristine context. page = context.new_page() page.goto(“example.com”) “`
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/playwright_api/browser.rb', line 66 def new_context( acceptDownloads: nil, baseURL: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, forcedColors: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, noViewport: nil, offline: nil, permissions: nil, proxy: nil, record_har_omit_content: nil, record_har_path: nil, record_video_dir: nil, record_video_size: nil, reducedMotion: nil, screen: nil, storageState: nil, strictSelectors: nil, timezoneId: nil, userAgent: nil, viewport: nil, &block) 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), forcedColors: unwrap_impl(forcedColors), 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(), 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), strictSelectors: unwrap_impl(strictSelectors), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(), &wrap_block_call(block))) end |
#new_page(acceptDownloads: nil, baseURL: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, forcedColors: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, noViewport: nil, offline: nil, permissions: nil, proxy: nil, record_har_omit_content: nil, record_har_path: nil, record_video_dir: nil, record_video_size: nil, reducedMotion: nil, screen: nil, storageState: nil, strictSelectors: nil, timezoneId: nil, userAgent: nil, viewport: nil, &block) ⇒ Object
Creates a new page in a new browser context. Closing this page will close the context as well.
This is a convenience API that should only be used for the single-page scenarios and short snippets. Production code and testing frameworks should explicitly create [`method: Browser.newContext`] followed by the
- `method: BrowserContext.newPage`
-
to control their exact life times.
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/playwright_api/browser.rb', line 105 def new_page( acceptDownloads: nil, baseURL: nil, bypassCSP: nil, colorScheme: nil, deviceScaleFactor: nil, extraHTTPHeaders: nil, forcedColors: nil, geolocation: nil, hasTouch: nil, httpCredentials: nil, ignoreHTTPSErrors: nil, isMobile: nil, javaScriptEnabled: nil, locale: nil, noViewport: nil, offline: nil, permissions: nil, proxy: nil, record_har_omit_content: nil, record_har_path: nil, record_video_dir: nil, record_video_size: nil, reducedMotion: nil, screen: nil, storageState: nil, strictSelectors: nil, timezoneId: nil, userAgent: nil, viewport: nil, &block) 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), forcedColors: unwrap_impl(forcedColors), 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(), 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), strictSelectors: unwrap_impl(strictSelectors), timezoneId: unwrap_impl(timezoneId), userAgent: unwrap_impl(userAgent), viewport: unwrap_impl(), &wrap_block_call(block))) end |
#off(event, callback) ⇒ Object
– inherited from EventEmitter –
183 184 185 |
# File 'lib/playwright_api/browser.rb', line 183 def off(event, callback) event_emitter_proxy.off(event, callback) end |
#on(event, callback) ⇒ Object
– inherited from EventEmitter –
177 178 179 |
# File 'lib/playwright_api/browser.rb', line 177 def on(event, callback) event_emitter_proxy.on(event, callback) end |
#once(event, callback) ⇒ Object
– inherited from EventEmitter –
171 172 173 |
# File 'lib/playwright_api/browser.rb', line 171 def once(event, callback) event_emitter_proxy.once(event, callback) end |
#start_tracing(page: nil, categories: nil, path: nil, screenshots: nil) ⇒ Object
> NOTE: This API controls [Chromium Tracing](www.chromium.org/developers/how-tos/trace-event-profiling-tool) which is a low-level chromium-specific debugging tool. API to control [Playwright Tracing](../trace-viewer) could be found [here](./class-tracing).
You can use [`method: Browser.startTracing`] and [`method: Browser.stopTracing`] to create a trace file that can be opened in Chrome DevTools performance panel.
“`python sync browser.start_tracing(page, path=“trace.json”) page.goto(“www.google.com”) browser.stop_tracing() “`
151 152 153 |
# File 'lib/playwright_api/browser.rb', line 151 def start_tracing(page: nil, categories: nil, path: nil, screenshots: nil) wrap_impl(@impl.start_tracing(page: unwrap_impl(page), categories: unwrap_impl(categories), path: unwrap_impl(path), screenshots: unwrap_impl(screenshots))) end |
#stop_tracing ⇒ Object
> NOTE: This API controls [Chromium Tracing](www.chromium.org/developers/how-tos/trace-event-profiling-tool) which is a low-level chromium-specific debugging tool. API to control [Playwright Tracing](../trace-viewer) could be found [here](./class-tracing).
Returns the buffer with trace data.
160 161 162 |
# File 'lib/playwright_api/browser.rb', line 160 def stop_tracing wrap_impl(@impl.stop_tracing) end |
#version ⇒ Object
Returns the browser version.
165 166 167 |
# File 'lib/playwright_api/browser.rb', line 165 def version wrap_impl(@impl.version) end |