testdriver-agent
How the TestDriver agent behaves on GitHub issues, pull requests, and @mentions
Perform a right-click action to open context menus
$ npx -y skills add testdriverai/testdriverai --skill testdriver-right-click --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/testdriver-right-clickContext preview
The summary Claude sees to decide when to auto-load this skill.
Perform a right-click action to open context menus
name: testdriver:right-click description: Perform a right-click action to open context menus
<!-- Generated from right-click.mdx. DO NOT EDIT. -->
The `rightClick()` method does a right-click action on an element. It usually opens context menus. You can call it on an [`Element`](/core-concepts/elements) instance. Or you can use it with a selector.
// Right-click on an element
await element.rightClick();
// Right-click using a selector
await ai.rightClick('selector');When called on an `Element`, no parameters are required.
When called directly on the AI client:
| Parameter | Type | Description | |-----------|------|-------------| | `selector` | `string` | The selector describing the element to right-click |
It returns a `Promise<void>`. The promise resolves when the right-click action completes.
const fileItem = await ai.find('README.md file');
await fileItem.rightClick();
// Select menu option
await ai.click('Delete from context menu');await ai.rightClick('image in the gallery');
await ai.click('Save image as');import { test } from 'vitest';
import { vscode } from '@testdriver/sdk';
test('renames a file via context menu', async () => {
const { ai } = await vscode();
// Right-click on a file
await ai.rightClick('test.js in the file explorer');
// Click rename option
await ai.click('Rename');
// Type new name
await ai.type('test.spec.js');
await ai.pressKeys('Enter');
// Verify rename
const renamedFile = await ai.find('test.spec.js in the file explorer');
expect(renamedFile).toBeTruthy();
});import { test } from 'vitest';
import { chrome } from '@testdriver/sdk';
test('opens link in new tab', async () => {
const { ai } = await chrome('https://example.com');
// Right-click on a link
await ai.rightClick('Documentation link');
// Select "Open in new tab"
await ai.click('Open link in new tab');
});test('uses custom context menu', async () => {
const { ai } = await chrome('https://app.example.com');
// Right-click on custom element
await ai.rightClick('project item in the list');
// Wait for custom menu to appear
await ai.find('custom context menu');
// Click menu option
await ai.click('Duplicate project');
// Verify duplication
const duplicatedProject = await ai.find('project item (copy)');
expect(duplicatedProject).toBeTruthy();
});Repo: testdriverai/testdriverai
How the TestDriver agent behaves on GitHub issues, pull requests, and @mentions
Deploy TestDriver on your AWS infrastructure using CloudFormation
How TestDriver learns your app and caches what it discovers for instant, deterministic replays