mcpbeat

Testdriver:right Click

testdriverai/testdriver:right-click

Perform a right-click action to open context menus

764 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
237
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/testdriverai/testdriverai --skill testdriver:right-click

The instruction itself

11 sections, as written by the author

<!-- Generated from right-click.mdx. DO NOT EDIT. -->

Overview

The rightClick() method performs a right-click action on an element, typically used to open context menus. You can either call it on an Element instance or use it directly with a selector.

Syntax

// Right-click on an element
await element.rightClick();

// Right-click using a selector
await ai.rightClick('selector');

Parameters

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 |

Returns

Returns a Promise<void> that resolves when the right-click action completes.

Examples

Right-Click to Open Context Menu

const fileItem = await ai.find('README.md file');
await fileItem.rightClick();

// Select menu option
await ai.click('Delete from context menu');

Direct Right-Click with Selector

await ai.rightClick('image in the gallery');
await ai.click('Save image as');

VS Code Context Menu

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();
});

Browser Context Menu

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');
});

Custom Context Menu in Web App

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();
});
  • click() - Single click on an element
  • doubleClick() - Double-click on an element
  • mouseDown() - Press mouse button without releasing
  • mouseUp() - Release mouse button
  • hover() - Move mouse over element without clicking

How to use it

Copy the folder

Take testdriverai/testdriver:right-click from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.