Skip to content
Testing
Skill

/testdriver-focus-application

Bring an application window to the foreground

From plugin
testdriverai
35665 skills1 agent

Claude Code

$ npx -y skills add testdriverai/testdriverai --skill testdriver-focus-application --agent claude-code

SKILL.md

testdriver-focus-application.SKILL.md
name: testdriver:focus-application
description: Bring an application window to the foreground

<!-- Generated from focus-application.mdx. DO NOT EDIT. -->

Overview

Move a specific application window to the front. Make it the active window for interactions.

Syntax

await testdriver.focusApplication(name)

Parameters

<ParamField path="name" type="string" required> The application name (for example, `'Google Chrome'`, `'Microsoft Edge'`, `'Notepad'`) </ParamField>

Returns

`Promise<string>` - The result message

Examples

Common Applications

// Focus Chrome browser
await testdriver.focusApplication('Google Chrome');

// Focus Edge browser
await testdriver.focusApplication('Microsoft Edge');

// Focus Notepad
await testdriver.focusApplication('Notepad');

// Focus File Explorer
await testdriver.focusApplication('File Explorer');

// Focus Visual Studio Code
await testdriver.focusApplication('Visual Studio Code');

After Opening Applications

// Open Chrome and focus it
await testdriver.exec('pwsh', `
  Start-Process "C:/Program Files/Google/Chrome/Application/chrome.exe" -ArgumentList "https://example.com"
`, 5000);

await new Promise(r => setTimeout(r, 2000)); // Wait for launch

// Focus the Chrome window
await testdriver.focusApplication('Google Chrome');

Best Practices

<Check> **Focus before UI interactions**

Always focus the target application before interacting with its UI:

  await testdriver.focusApplication('Google Chrome');
  
  const button = await testdriver.find('submit button');
  await button.click();

</Check>

<Check> **Wait after launching apps**

Give applications time to open before focusing:

  await testdriver.exec('pwsh', 'Start-Process notepad', 5000);
  await new Promise(r => setTimeout(r, 1000)); // Wait for launch
  await testdriver.focusApplication('Notepad');

</Check>

<Check> **Use exact application names**

  // ✅ Correct
  await testdriver.focusApplication('Google Chrome');
  
  // ❌ May not work
  await testdriver.focusApplication('Chrome');
  await testdriver.focusApplication('chrome.exe');

</Check>

<Warning> **Application must be running**

The application must already be running. `focusApplication()` won't launch applications, only bring existing windows to the foreground. </Warning>

Use Cases

<AccordionGroup> <Accordion title="Multi-Application Testing">

    // Test workflow across multiple apps
    await testdriver.focusApplication('Google Chrome');
    const data = await testdriver.extract('the order number');
    
    await testdriver.focusApplication('Notepad');
    await testdriver.type(data);
    await testdriver.pressKeys(['ctrl', 's']);
    
    await testdriver.focusApplication('Google Chrome');
    const nextButton = await testdriver.find('next button');
    await nextButton.click();

</Accordion>

<Accordion title="Browser Switching">

    // Compare behavior in different browsers
    await testdriver.focusApplication('Google Chrome');
    await testdriver.assert('page loaded correctly in Chrome');
    
    await testdriver.focusApplication('Microsoft Edge');
    await testdriver.assert('page loaded correctly in Edge');

</Accordion>

<Accordion title="Desktop Application Testing">

    // Launch and focus desktop app
    await testdriver.exec('pwsh', 'Start-Process notepad', 5000);
    await new Promise(r => setTimeout(r, 1000));
    
    await testdriver.focusApplication('Notepad');
    await testdriver.type('Test content');

</Accordion>

<Accordion title="Window Management">

    // Show desktop first
    await testdriver.pressKeys(['winleft', 'd']);
    
    // Click desktop icon
    const icon = await testdriver.find('Chrome icon on desktop');
    await icon.click();
    
    await new Promise(r => setTimeout(r, 2000));
    
    // Focus the opened window
    await testdriver.focusApplication('Google Chrome');

</Accordion> </AccordionGroup>

Common Application Names

Browsers

  • `'Google Chrome'`
  • `'Microsoft Edge'`
  • `'Mozilla Firefox'`
  • `'Safari'` (macOS)

Office Applications

  • `'Microsoft Word'`
  • `'Microsoft Excel'`
  • `'Microsoft PowerPoint'`
  • `'Microsoft Outlook'`

Development Tools

  • `'Visual Studio Code'`
  • `'Visual Studio'`
  • `'IntelliJ IDEA'`
  • `'Sublime Text'`

System Applications

  • `'Notepad'`
  • `'File Explorer'`
  • `'Command Prompt'`
  • `'Windows PowerShell'`
  • `'Task Manager'`

Communication

  • `'Microsoft Teams'`
  • `'Slack'`
  • `'Discord'`
  • `'Zoom'`

Complete Example

import { beforeAll, afterAll, describe, it } from 'vitest';
import TestDriver from 'testdriverai';

describe('Multi-Application Workflow', () => {
  let testdriver;

  beforeAll(async () => {
    client = new TestDriver(process.env.TD_API_KEY);
    await testdriver.auth();
    await testdriver.connect();
  });

  afterAll(async () => {
    await testdriver.disconnect();
  });

  it('should work across multiple applications', async () => {
    // Start in browser
    await testdriver.focusApplication('Google Chrome');
    
    // Get data from web page
    const orderNumber = await testdriver.extract('the order number');
    console.log('Order:', orderNumber);
    
    // Open Notepad
    await testdriver.exec('pwsh', 'Start-Process notepad', 5000);
    await new Promise(r => setTimeout(r, 1500));
    
    // Focus Notepad and save data
    await testdriver.focusApplication('Notepad');
    await testdriver.type(`Order Number: ${orderNumber}`);
    await testdriver.type('\n');
    await testdriver.type(`Date: ${new Date().toISOString()}`);
    
    // Save file
    await testdriver.pressKeys(['ctrl', 's']);
    await new Promise(r => setTimeout(r, 500));
    
    await testdriver.type('C:\\order-info.txt');
    awai
Read more
@testdriverai
Ships withtestdriverai

Computer-Use SDK for E2E QA Testing

35665 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
356
Star history of testdriverai/testdriverai on GitHub, a chart by star-history.com

Other skills on testdriverai.

More skills from other plugins.

api-review

api-review

Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…

@microsoft@microsoftInstall Skill
add-e2e-selectors

add-e2e-selectors

Add reliable @grafana/e2e-selectors to interactive elements and key containers in the Grafana frontend. Use when adding e2e…

grafana5d78k
@grafana@grafanaInstall Skill
promptfoo-evals

promptfoo-evals

Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…

promptfoo13d27k
@promptfoo@promptfooInstall Skill
deepeval

deepeval

DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…

@confident-ai@confident-aiInstall Skill

Questions about testdriver-focus-application.

Which coding agents can use testdriver-focus-application?
testdriver-focus-application installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.