class: Browser
Added in: v1.8
A Browser is created via BrowserType.launch(). An example of using a Browser to create a Page:
const { firefox } = require('copilotbrowser'); // Or 'chromium' or 'webkit'.
(async () => {
const browser = await firefox.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();
})();
import com.microsoft.copilotbrowser.*;
public class Example {
public static void main(String[] args) {
try (copilotbrowser copilotbrowser = copilotbrowser.create()) {
BrowserType firefox = copilotbrowser.firefox();
Browser browser = firefox.launch();
Page page = browser.newPage();
page.navigate("https://example.com");
browser.close();
}
}
}
import asyncio
from copilotbrowser.async_api import async_copilotbrowser, copilotbrowser
async def run(copilotbrowser: copilotbrowser):
firefox = copilotbrowser.firefox
browser = await firefox.launch()
page = await browser.new_page()
await page.goto("https://example.com")
await browser.close()
async def main():
async with async_copilotbrowser() as copilotbrowser:
await run(copilotbrowser)
asyncio.run(main())
from copilotbrowser.sync_api import sync_copilotbrowser, copilotbrowser
def run(copilotbrowser: copilotbrowser):
firefox = copilotbrowser.firefox
browser = firefox.launch()
page = browser.new_page()
page.goto("https://example.com")
browser.close()
with sync_copilotbrowser() as copilotbrowser:
run(copilotbrowser)
using Microsoft.copilotbrowser;
using var copilotbrowser = await copilotbrowser.CreateAsync();
var firefox = copilotbrowser.Firefox;
var browser = await firefox.LaunchAsync(new() { Headless = false });
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.bing.com");
await browser.CloseAsync();
event: Browser.disconnectedβ
Added in: v1.8
- argument: <
Browser>
Emitted when Browser gets disconnected from the browser application. This might happen because of one of the following:
- Browser application is closed or crashed.
- The Browser.close() method was called.
method: Browser.browserTypeβ
Added in: v1.23 Returns:
BrowserType
Get the browser type (chromium, firefox or webkit) that the browser belongs to.
async method: Browser.closeβ
Added in: v1.8
In case this browser is obtained using 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.
This is similar to force-quitting the browser. To close pages gracefully and ensure you receive page close events, call BrowserContext.close() on any BrowserContext instances you explicitly created earlier using Browser.newContext() before calling Browser.close().
The Browser object itself is considered to be disposed and cannot be used anymore.
option: Browser.close.reasonβ
Added in: v1.40
reason<string>
The reason to be reported to the operations interrupted by the browser closure.
method: Browser.contextsβ
Added in: v1.8 Returns:
Array<BrowserContext>
Returns an array of all open browser contexts. In a newly created browser, this will return zero browser contexts.
Usage
const browser = await pw.webkit.launch();
console.log(browser.contexts().length); // prints `0`
const context = await browser.newContext();
console.log(browser.contexts().length); // prints `1`
Browser browser = pw.webkit().launch();
System.out.println(browser.contexts().size()); // prints "0"
BrowserContext context = browser.newContext();
System.out.println(browser.contexts().size()); // prints "1"
browser = await pw.webkit.launch()
print(len(browser.contexts)) # prints `0`
context = await browser.new_context()
print(len(browser.contexts)) # prints `1`
browser = pw.webkit.launch()
print(len(browser.contexts)) # prints `0`
context = browser.new_context()
print(len(browser.contexts)) # prints `1`
using var copilotbrowser = await copilotbrowser.CreateAsync();
var browser = await copilotbrowser.Webkit.LaunchAsync();
System.Console.WriteLine(browser.Contexts.Count); // prints "0"
var context = await browser.NewContextAsync();
System.Console.WriteLine(browser.Contexts.Count); // prints "1"
method: Browser.isConnectedβ
Added in: v1.8 Returns:
boolean
Indicates that the browser is connected.
async method: Browser.newBrowserCDPSessionβ
Added in: v1.11 Returns:
CDPSession
CDP Sessions are only supported on Chromium-based browsers.
Returns the newly created browser session.
async method: Browser.newContextβ
Added in: v1.8 Returns:
BrowserContext
Creates a new browser context. It won't share cookies/cache with other browser contexts.
If directly using this method to create BrowserContexts, it is best practice to explicitly close the returned context via BrowserContext.close() when your code is done with the BrowserContext,
and before calling Browser.close(). This will ensure the context is closed gracefully and any artifactsβlike HARs and videosβare fully flushed and saved.
Usage
(async () => {
const browser = await copilotbrowser.firefox.launch(); // Or 'chromium' or 'webkit'.
// Create a new incognito browser context.
const context = await browser.newContext();
// Create a new page in a pristine context.
const page = await context.newPage();
await page.goto('https://example.com');
// Gracefully close up everything
await context.close();
await browser.close();
})();
Browser browser = copilotbrowser.firefox().launch(); // Or 'chromium' or 'webkit'.
// Create a new incognito browser context.
BrowserContext context = browser.newContext();
// Create a new page in a pristine context.
Page page = context.newPage();
page.navigate("https://example.com");
// Graceful close up everything
context.close();
browser.close();
browser = await copilotbrowser.firefox.launch() # or "chromium" or "webkit".
# create a new incognito browser context.
context = await browser.new_context()
# create a new page in a pristine context.
page = await context.new_page()
await page.goto("https://example.com")
# gracefully close up everything
await context.close()
await browser.close()
browser = copilotbrowser.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("https://example.com")
# gracefully close up everything
context.close()
browser.close()
using var copilotbrowser = await copilotbrowser.CreateAsync();
var browser = await copilotbrowser.Firefox.LaunchAsync();
// Create a new incognito browser context.
var context = await browser.NewContextAsync();
// Create a new page in a pristine context.
var page = await context.NewPageAsync(); ;
await page.GotoAsync("https://www.bing.com");
// Gracefully close up everything
await context.CloseAsync();
await browser.CloseAsync();
option: Browser.newContext.-inline- = %%-shared-context-params-list-v1.8-%%β
Added in: v1.8
option: Browser.newContext.proxy = %%-context-option-proxy-%%β
Added in: v1.8
option: Browser.newContext.clientCertificates = %%-context-option-clientCertificates-%%β
- since: 1.46
option: Browser.newContext.storageState = %%-js-python-context-option-storage-state-%%β
Added in: v1.8
option: Browser.newContext.storageState = %%-csharp-java-context-option-storage-state-%%β
Added in: v1.8
option: Browser.newContext.storageStatePath = %%-csharp-java-context-option-storage-state-path-%%β
Added in: v1.9
async method: Browser.newPageβ
Added in: v1.8 Returns:
Page
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 Browser.newContext() followed by the BrowserContext.newPage() to control their exact life times.
option: Browser.newPage.-inline- = %%-shared-context-params-list-v1.8-%%β
Added in: v1.8
option: Browser.newPage.proxy = %%-context-option-proxy-%%β
Added in: v1.8
option: Browser.newPage.clientCertificates = %%-context-option-clientCertificates-%%β
- since: 1.46
option: Browser.newPage.storageState = %%-js-python-context-option-storage-state-%%β
Added in: v1.8
option: Browser.newPage.storageState = %%-csharp-java-context-option-storage-state-%%β
Added in: v1.8
option: Browser.newPage.storageStatePath = %%-csharp-java-context-option-storage-state-path-%%β
Added in: v1.9
async method: Browser.removeAllListenersβ
Added in: v1.47
Languages: JavaScript
Removes all the listeners of the given type (or all registered listeners if no type given). Allows to wait for async listeners to complete or to ignore subsequent errors from these listeners.
param: Browser.removeAllListeners.typeβ
Added in: v1.47
type?<string>
option: Browser.removeAllListeners.behavior = %%-remove-all-listeners-options-behavior-%%β
Added in: v1.47
async method: Browser.startTracingβ
Added in: v1.11
Languages: Java, JavaScript, Python
This API controls Chromium Tracing which is a low-level chromium-specific debugging tool. API to control copilotbrowser Tracing could be found here.
You can use Browser.startTracing() and Browser.stopTracing() to create a trace file that can be opened in Chrome DevTools performance panel.
Usage
await browser.startTracing(page, { path: 'trace.json' });
await page.goto('https://www.google.com');
await browser.stopTracing();
browser.startTracing(page, new Browser.StartTracingOptions()
.setPath(Paths.get("trace.json")));
page.navigate("https://www.google.com");
browser.stopTracing();
await browser.start_tracing(page, path="trace.json")
await page.goto("https://www.google.com")
await browser.stop_tracing()
browser.start_tracing(page, path="trace.json")
page.goto("https://www.google.com")
browser.stop_tracing()
param: Browser.startTracing.pageβ
Added in: v1.11
page?<Page>
Optional, if specified, tracing includes screenshots of the given page.
option: Browser.startTracing.pathβ
Added in: v1.11
path<path>
A path to write the trace file to.
option: Browser.startTracing.screenshotsβ
Added in: v1.11
screenshots<boolean>
captures screenshots in the trace.
option: Browser.startTracing.categoriesβ
Added in: v1.11
categories<Array<string>>
specify custom categories to use instead of default.
async method: Browser.stopTracingβ
Added in: v1.11
Languages: Java, JavaScript, Python Returns:
Buffer
This API controls Chromium Tracing which is a low-level chromium-specific debugging tool. API to control copilotbrowser Tracing could be found here.
Returns the buffer with trace data.
method: Browser.versionβ
Added in: v1.8 Returns:
string
Returns the browser version.