UNPKG

chromancer

Version:

A powerful command-line interface for automating Chrome browser using Playwright. Perfect for web scraping, automation, testing, and browser workflows.

49 lines (48 loc) 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.safeEvaluate = safeEvaluate; exports.evaluateElementProperty = evaluateElementProperty; exports.evaluateElementProperties = evaluateElementProperties; /** * Safely evaluate JavaScript in the page context with error handling */ async function safeEvaluate(page, pageFunction, ...args) { try { return await page.evaluate(pageFunction, ...args); } catch (error) { if (error.name === 'SyntaxError') { throw new Error(`Invalid JavaScript expression: ${error.message}`); } throw new Error(`Failed to evaluate: ${error.message}`); } } /** * Get a single property from an element */ async function evaluateElementProperty(element, property) { return element.evaluate((el, prop) => { return el[prop]; }, property); } /** * Get multiple properties from an element at once */ async function evaluateElementProperties(element, properties) { const defaultProperties = [ 'textContent', 'value', 'id', 'className', 'tagName', 'href', ]; const props = properties || defaultProperties; return element.evaluate((el, propList) => { const result = {}; for (const prop of propList) { result[prop] = el[prop] || null; } return result; }, props); }