Modules@robinpath/browser
browser

@robinpath/browser

0.1.2Node.jsPublic

Headless browser automation with Puppeteer: launch browsers, navigate pages, interact with elements, take screenshots, generate PDFs, and scrape data

Browser

Headless browser automation with Puppeteer: launch browsers, navigate pages, interact with elements, take screenshots, generate PDFs, and scrape data

Package: @robinpath/browser | Category: Web | Type: Utility

Authentication

No authentication required. All functions are available immediately.

Use Cases

Use the browser module when you need to:

  • Launch a headless browser instance -- Use browser.launch to perform this operation
  • Open a new page in a browser instance -- Use browser.newPage to perform this operation
  • Navigate a page to a URL -- Use browser.goto to perform this operation
  • Click an element on the page -- Use browser.click to perform this operation
  • Type text into an input element -- Use browser.type to perform this operation

Quick Reference

FunctionDescriptionReturns
launchLaunch a headless browser instance{id}
newPageOpen a new page in a browser instance{pageId}
gotoNavigate a page to a URL{url, status}
clickClick an element on the pageTrue
typeType text into an input elementTrue
selectSelect a dropdown option by value{selected}
screenshotTake a screenshot of the page{path} or {base64}
pdfGenerate a PDF from the page{path} or {base64}
evaluateExecute JavaScript in the page contextResult of the evaluated script
contentGet the full HTML content of the pageHTML string
titleGet the page titlePage title
urlGet the current URL of the pageCurrent URL
waitForWait for a selector to appear on the pageTrue
querySelectorGet text content or attribute of an elementText content or attribute value
querySelectorAllGet text content of all matching elementsArray of text content strings
cookiesGet all cookies for the current pageArray of cookie objects
setCookieSet a cookie on the pageTrue
closeClose a pageTrue
closeBrowserClose a browser instance and all its pagesTrue
scrapeHigh-level scrape: navigate to URL and extract data by CSS selectors{url, data}

Functions

launch

Launch a headless browser instance

Module: browser | Returns: object -- {id}

browser.launch "main" {"headless": true}
ParameterTypeRequiredDescription
idstringYesBrowser instance name
optionsobjectNo{headless, args}

newPage

Open a new page in a browser instance

Module: browser | Returns: object -- {pageId}

browser.newPage "main" "page1"
ParameterTypeRequiredDescription
browserIdstringYesBrowser instance name
pageIdstringYesPage identifier

goto

Navigate a page to a URL

Module: browser | Returns: object -- {url, status}

browser.goto "page1" "https://example.com" {"waitUntil": "networkidle2"}
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
urlstringYesTarget URL
optionsobjectNo{waitUntil: load

click

Click an element on the page

Module: browser | Returns: boolean -- True

browser.click "page1" "#submit-btn"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
selectorstringYesCSS selector

type

Type text into an input element

Module: browser | Returns: boolean -- True

browser.type "page1" "#search" "hello" {"delay": 50}
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
selectorstringYesCSS selector
textstringYesText to type
optionsobjectNo{delay: ms between keystrokes}

select

Select a dropdown option by value

Module: browser | Returns: object -- {selected}

browser.select "page1" "#country" "US"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
selectorstringYesCSS selector
valuesarrayYesValue(s) to select

screenshot

Take a screenshot of the page

Module: browser | Returns: object -- {path} or {base64}

browser.screenshot "page1" {"path": "./shot.png", "fullPage": true}
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
optionsobjectNo{path, fullPage, type: png

pdf

Generate a PDF from the page

Module: browser | Returns: object -- {path} or {base64}

browser.pdf "page1" {"path": "./page.pdf", "format": "A4"}
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
optionsobjectNo{path, format}

evaluate

Execute JavaScript in the page context

Module: browser | Returns: any -- Result of the evaluated script

browser.evaluate "page1" "return document.title"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
scriptstringYesJavaScript code to evaluate

content

Get the full HTML content of the page

Module: browser | Returns: string -- HTML string

browser.content "page1"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier

title

Get the page title

Module: browser | Returns: string -- Page title

browser.title "page1"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier

url

Get the current URL of the page

Module: browser | Returns: string -- Current URL

browser.url "page1"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier

waitFor

Wait for a selector to appear on the page

Module: browser | Returns: boolean -- True

browser.waitFor "page1" ".loaded" {"timeout": 5000}
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
selectorstringYesCSS selector
optionsobjectNo{timeout: ms}

querySelector

Get text content or attribute of an element

Module: browser | Returns: string -- Text content or attribute value

browser.querySelector "page1" "h1"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
selectorstringYesCSS selector
attributestringNoAttribute name (optional, defaults to textContent)

querySelectorAll

Get text content of all matching elements

Module: browser | Returns: array -- Array of text content strings

browser.querySelectorAll "page1" "li.item"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
selectorstringYesCSS selector

cookies

Get all cookies for the current page

Module: browser | Returns: array -- Array of cookie objects

browser.cookies "page1"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier

setCookie

Set a cookie on the page

Module: browser | Returns: boolean -- True

browser.setCookie "page1" {"name": "session", "value": "abc123", "domain": "example.com"}
ParameterTypeRequiredDescription
pageIdstringYesPage identifier
cookieobjectYes{name, value, domain, path, ...}

close

Close a page

Module: browser | Returns: boolean -- True

browser.close "page1"
ParameterTypeRequiredDescription
pageIdstringYesPage identifier

closeBrowser

Close a browser instance and all its pages

Module: browser | Returns: boolean -- True

browser.closeBrowser "main"
ParameterTypeRequiredDescription
browserIdstringYesBrowser instance name

scrape

High-level scrape: navigate to URL and extract data by CSS selectors

Module: browser | Returns: object -- {url, data}

browser.scrape "https://example.com" {"title": "h1", "links": "a"}
ParameterTypeRequiredDescription
urlstringYesTarget URL
selectorsobjectYesMap of name to CSS selector
optionsobjectNo{waitUntil, args}

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Browser "..." not foundCheck the error message for details
Page "..." not foundCheck the error message for details
@desc "Launch and validate result"
do
  set $result as browser.launch "main" {"headless": true}
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. Multi-step Browser workflow

Chain multiple browser operations together.

@desc "Launch, new page, and more"
do
  set $r_launch as browser.launch "main" {"headless": true}
  set $r_newPage as browser.newPage "main" "page1"
  set $r_goto as browser.goto "page1" "https://example.com" {"waitUntil": "networkidle2"}
  print "All operations complete"
enddo

2. Safe launch with validation

Check results before proceeding.

@desc "Launch and validate result"
do
  set $result as browser.launch "main" {"headless": true}
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • json -- JSON module for complementary functionality

Versions (1)

VersionTagPublished
0.1.2latest1 months ago
Install
$ robinpath add @robinpath/browser

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.2
LicenseMIT
Unpacked Size6.4 KB
Versions1
Weekly Downloads26
Total Downloads26
Stars0
Last Publish1 months ago
Created1 months ago

Keywords

Category

web