Skill240 repo starsupdated 20d ago
testdriver:focus-application
Bring an application window to the foreground
Install in Claude Code
Copygit clone --depth 1 https://github.com/testdriverai/testdriverai /tmp/testdriver-focus-application && cp -r /tmp/testdriver-focus-application/ai/skills/testdriver:focus-application ~/.claude/skills/testdriver-focus-applicationThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
<!-- Generated from focus-application.mdx. DO NOT EDIT. -->
## Overview
Bring a specific application window to the foreground and make it the active window for interactions.
## Syntax
```javascript
await testdriver.focusApplication(name)
```
## Parameters
<ParamField path="name" type="string" required>
Application name (e.g., `'Google Chrome'`, `'Microsoft Edge'`, `'Notepad'`)
</ParamField>
## Returns
`Promise<string>` - Result message
## Examples
### Common Applications
```javascript
// 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
```javascript
// 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:
```javascript
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:
```javascript
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**
```javascript
// ✅ 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">
```javascript
// 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">
```javascript
// 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">
```javascript
// 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">
```javascript
// 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
```javascript
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');
await testdriver.pressKeys(['enter']);
// Return to browser
await testdriver.focusApplication('GoogMore from this repository
testdriver:aiSkill
Execute natural language tasks using AI
testdriver:assertSkill
Make AI-powered assertions about screen state
testdriver:aws-setupSkill
Deploy TestDriver on your AWS infrastructure using CloudFormation
testdriver:cacheSkill
Speed up tests with screenshot-based caching
testdriver:cachingSkill
1.7x faster test execution with intelligent caching and optimization
testdriver:captchaSkill
Solve captchas using 2captcha service
testdriver:ci-cdSkill
Run TestDriver tests in CI/CD with parallel execution and cross-platform support
testdriver:clickSkill
Click at specific coordinates or on elements