mirror of
https://github.com/microsoft/playwright-mcp.git
synced 2025-07-27 00:52:27 +08:00
Change tab selection to use 0-based indexing instead of 1-based
Co-authored-by: Skn0tt <14912729+Skn0tt@users.noreply.github.com>
This commit is contained in:
parent
c82a17ddfd
commit
708aa6d6a5
@ -662,9 +662,9 @@ X Y coordinate space, based on the provided screenshot.
|
|||||||
|
|
||||||
- **browser_tab_select**
|
- **browser_tab_select**
|
||||||
- Title: Select a tab
|
- Title: Select a tab
|
||||||
- Description: Select a tab by index (1-based indexing)
|
- Description: Select a tab by index (0-based indexing)
|
||||||
- Parameters:
|
- Parameters:
|
||||||
- `index` (number): The index of the tab to select (1-based: first tab is 1, second tab is 2, etc.)
|
- `index` (number): The index of the tab to select (0-based: first tab is 0, second tab is 1, etc.)
|
||||||
- Read-only: **true**
|
- Read-only: **true**
|
||||||
|
|
||||||
<!-- NOTE: This has been generated via update-readme.js -->
|
<!-- NOTE: This has been generated via update-readme.js -->
|
||||||
@ -673,7 +673,7 @@ X Y coordinate space, based on the provided screenshot.
|
|||||||
- Title: Close a tab
|
- Title: Close a tab
|
||||||
- Description: Close a tab
|
- Description: Close a tab
|
||||||
- Parameters:
|
- Parameters:
|
||||||
- `index` (number, optional): The index of the tab to close (1-based: first tab is 1, second tab is 2, etc.). Closes current tab if not provided.
|
- `index` (number, optional): The index of the tab to close (0-based: first tab is 0, second tab is 1, etc.). Closes current tab if not provided.
|
||||||
- Read-only: **false**
|
- Read-only: **false**
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
@ -101,7 +101,7 @@ export class Context {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async selectTab(index: number) {
|
async selectTab(index: number) {
|
||||||
this._currentTab = this._tabs[index - 1];
|
this._currentTab = this._tabs[index];
|
||||||
await this._currentTab.page.bringToFront();
|
await this._currentTab.page.bringToFront();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ export class Context {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async closeTab(index: number | undefined) {
|
async closeTab(index: number | undefined) {
|
||||||
const tab = index === undefined ? this._currentTab : this._tabs[index - 1];
|
const tab = index === undefined ? this._currentTab : this._tabs[index];
|
||||||
await tab?.page.close();
|
await tab?.page.close();
|
||||||
return await this.listTabsMarkdown();
|
return await this.listTabsMarkdown();
|
||||||
}
|
}
|
||||||
|
@ -50,9 +50,9 @@ const selectTab: ToolFactory = captureSnapshot => defineTool({
|
|||||||
schema: {
|
schema: {
|
||||||
name: 'browser_tab_select',
|
name: 'browser_tab_select',
|
||||||
title: 'Select a tab',
|
title: 'Select a tab',
|
||||||
description: 'Select a tab by index (1-based indexing)',
|
description: 'Select a tab by index (0-based indexing)',
|
||||||
inputSchema: z.object({
|
inputSchema: z.object({
|
||||||
index: z.number().describe('The index of the tab to select (1-based: first tab is 1, second tab is 2, etc.)'),
|
index: z.number().describe('The index of the tab to select (0-based: first tab is 0, second tab is 1, etc.)'),
|
||||||
}),
|
}),
|
||||||
type: 'readOnly',
|
type: 'readOnly',
|
||||||
},
|
},
|
||||||
@ -108,7 +108,7 @@ const closeTab: ToolFactory = captureSnapshot => defineTool({
|
|||||||
title: 'Close a tab',
|
title: 'Close a tab',
|
||||||
description: 'Close a tab',
|
description: 'Close a tab',
|
||||||
inputSchema: z.object({
|
inputSchema: z.object({
|
||||||
index: z.number().optional().describe('The index of the tab to close (1-based: first tab is 1, second tab is 2, etc.). Closes current tab if not provided.'),
|
index: z.number().optional().describe('The index of the tab to close (0-based: first tab is 0, second tab is 1, etc.). Closes current tab if not provided.'),
|
||||||
}),
|
}),
|
||||||
type: 'destructive',
|
type: 'destructive',
|
||||||
},
|
},
|
||||||
|
@ -90,12 +90,12 @@ test('select tab', async ({ client }) => {
|
|||||||
expect(await client.callTool({
|
expect(await client.callTool({
|
||||||
name: 'browser_tab_select',
|
name: 'browser_tab_select',
|
||||||
arguments: {
|
arguments: {
|
||||||
index: 2,
|
index: 1,
|
||||||
},
|
},
|
||||||
})).toHaveTextContent(`
|
})).toHaveTextContent(`
|
||||||
- Ran Playwright code:
|
- Ran Playwright code:
|
||||||
\`\`\`js
|
\`\`\`js
|
||||||
// <internal code to select tab 2>
|
// <internal code to select tab 1>
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
### Open tabs
|
### Open tabs
|
||||||
@ -118,12 +118,12 @@ test('close tab', async ({ client }) => {
|
|||||||
expect(await client.callTool({
|
expect(await client.callTool({
|
||||||
name: 'browser_tab_close',
|
name: 'browser_tab_close',
|
||||||
arguments: {
|
arguments: {
|
||||||
index: 3,
|
index: 2,
|
||||||
},
|
},
|
||||||
})).toHaveTextContent(`
|
})).toHaveTextContent(`
|
||||||
- Ran Playwright code:
|
- Ran Playwright code:
|
||||||
\`\`\`js
|
\`\`\`js
|
||||||
// <internal code to close tab 3>
|
// <internal code to close tab 2>
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
### Open tabs
|
### Open tabs
|
||||||
|
Loading…
x
Reference in New Issue
Block a user