Skip to content
cccskills
FreePublished on GitHub

testdriver:mouse-up

Release the mouse button

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

<!-- Generated from mouse-up.mdx. DO NOT EDIT. -->

Overview

The mouseUp() method releases the mouse button. It completes a drag operation or a custom mouse gesture that you started with mouseDown(). Call it without parameters to release the button at the present mouse position.

Syntax

// Release mouse button at current position
await ai.mouseUp();

Parameters

None. The mouse button is released at the current cursor position.

Returns

It returns a Promise<void>. The promise resolves when TestDriver releases the mouse button.

Examples

Complete Drag and Drop

// Start dragging
await ai.mouseDown('file to drag');

// Move to drop location
await ai.hover('target folder');

// Complete the drop
await ai.mouseUp();

Selecting Multiple Files

import { test } from 'vitest';
import { vscode } from '@testdriver/sdk';

test('selects range of files', async () => {
  const { ai } = await vscode();
  
  // Click first file
  await ai.click('first-file.js in explorer');
  
  // Hold shift and click last file
  await ai.pressKeys('Shift');
  await ai.mouseDown('last-file.js in explorer');
  await ai.mouseUp();
  
  // Verify multiple files selected
  const selectedCount = await ai.find('status bar showing file count');
  expect(selectedCount.text).toContain('5 files');
});

Drawing Application

test('draws a shape', async () => {
  const { ai } = await chrome('https://drawing-app.example.com');
  
  // Select pencil tool
  await ai.click('pencil tool');
  
  // Draw a line
  await ai.mouseDown('canvas near top-left');
  await ai.hover('canvas center');
  await ai.hover('canvas bottom-right');
  await ai.mouseUp();
  
  // Verify drawing exists
  const strokes = await ai.exec('canvas.getContext("2d").getImageData(0,0,100,100)');
  expect(strokes).toBeTruthy();
});

Resizing Window Panels

test('resizes editor panel', async () => {
  const { ai } = await vscode();
  
  // Grab the divider
  await ai.mouseDown('panel resize divider');
  
  // Drag to new position
  await ai.hover('position 400 pixels from left');
  
  // Release to complete resize
  await ai.mouseUp();
  
  // Verify new panel size
  const panel = await ai.find('editor panel');
  expect(panel.width).toBeGreaterThan(350);
});

Drag to Reorder List Items

import { test } from 'vitest';
import { chrome } from '@testdriver/sdk';

test('reorders tasks in list', async () => {
  const { ai } = await chrome('https://todo-app.example.com');
  
  // Start dragging first task
  await ai.mouseDown('drag handle on first task');
  
  // Move down to third position
  await ai.hover('third task position');
  
  // Drop the task
  await ai.mouseUp();
  
  // Verify new order
  const thirdTask = await ai.find('third task in list');
  expect(thirdTask.text).toContain('Original first task');
});

Text Selection with Mouse

test('selects text with mouse drag', async () => {
  const { ai } = await chrome('https://document.example.com');
  
  // Start selection at beginning of word
  await ai.mouseDown('start of "TestDriver" word');
  
  // Drag to end of word
  await ai.hover('end of "TestDriver" word');
  
  // Complete selection
  await ai.mouseUp();
  
  // Verify selection
  const selection = await ai.exec('window.getSelection().toString()');
  expect(selection).toBe('TestDriver');
});

Important Notes

  • mouseUp() must be preceded by mouseDown() to have an effect
  • Releases the button at the current cursor position
  • Completes any drag or selection operation that was in progress
  • For simple clicks, use click() instead of mouseDown/mouseUp pair

Related Methods

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

How the TestDriver agent behaves on GitHub issues, pull requests, and @mentions

The English summary is being prepared. Showing the original description.

testdriverai/testdriverai473Updated Sep 21, 2026

Execute natural language tasks using AI

The English summary is being prepared. Showing the original description.

testdriverai/testdriverai473Updated Sep 21, 2026

Make AI-powered assertions about screen state

The English summary is being prepared. Showing the original description.

testdriverai/testdriverai473Updated Sep 21, 2026

Deploy TestDriver on your AWS infrastructure using CloudFormation

The English summary is being prepared. Showing the original description.

testdriverai/testdriverai473Updated Sep 21, 2026

Speed up tests with screenshot-based caching

The English summary is being prepared. Showing the original description.

testdriverai/testdriverai473Updated Sep 21, 2026

How TestDriver learns your app and caches what it discovers for instant, deterministic replays

The English summary is being prepared. Showing the original description.

testdriverai/testdriverai473Updated Sep 21, 2026

See all skills by testdriverai

Report a problem with this skill