browser_wait_for
Pauses browser automation until a page condition is met. Use to synchronize actions with page loading or changes.
Instructions
browser wait for
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/browser_tools.js:1013-1061 (handler)The browserWaitFor function that implements the 'browser_wait_for' tool logic. It waits for text to appear (options.text), for text to disappear (options.textGone), or for a specified time (options.time) using Playwright's page.waitForSelector and page.waitForTimeout.
async function browserWaitFor(options = {}) { try { const page = await getPage(); if (options.text) { // Wait for text to appear await page.waitForSelector(`text=${options.text}`, { timeout: config.timeout }); return { success: true, message: `Found text: ${options.text}` }; } else if (options.textGone) { // Wait for text to disappear await page.waitForSelector(`text=${options.textGone}`, { state: 'hidden', timeout: config.timeout }); return { success: true, message: `Text disappeared: ${options.textGone}` }; } else if (options.time) { // Wait for specified time const waitTime = Math.min(options.time, 10) * 1000; await page.waitForTimeout(waitTime); return { success: true, message: `Waited for ${waitTime / 1000} seconds` }; } else { return { success: false, message: 'Must specify text, textGone, or time to wait for' }; } } catch (error) { logger.error(`Error waiting: ${error.message}`); return { success: false, message: error.message }; } } - src/mcp/server.js:289-289 (registration)The MCP server routes 'browser_wait_for' tool calls to browserTools.browserWaitFor with text, textGone, and time arguments.
case 'browser_wait_for': data = await browserTools.browserWaitFor({ text: args.text, textGone: args.textGone, time: args.time }); break; - src/mcp/server.js:128-136 (registration)The 'browser_wait_for' tool is registered in the extended browser tool schemas list sent via tools/list, with an empty inputSchema.
{ n:'browser_navigate_back' }, { n:'browser_navigate_forward' }, { n:'browser_hover' }, { n:'browser_drag' }, { n:'browser_select_option' }, { n:'browser_press_key' }, { n:'browser_snapshot' }, { n:'browser_console_messages' }, { n:'browser_network_requests' }, { n:'browser_tab_list' }, { n:'browser_tab_new' }, { n:'browser_tab_select' }, { n:'browser_tab_close' }, { n:'browser_file_upload' }, { n:'browser_wait' }, { n:'browser_wait_for' }, { n:'browser_resize' }, { n:'browser_handle_dialog' } ]; for (const b of browserExtras) { tools.push({ name: b.n, description: b.n.replace(/_/g,' '), inputSchema: { type:'object', properties:{} } }); } - src/tools/browser_tools.js:1156-1156 (helper)browserWaitFor is exported from the browser_tools module, making it available for the MCP server to call.
browserWaitFor,