diff --git a/src/browser/base-page.ts b/src/browser/base-page.ts index e7e4ace77..ddaab97bb 100644 --- a/src/browser/base-page.ts +++ b/src/browser/base-page.ts @@ -35,8 +35,6 @@ export abstract class BasePage implements IPage { abstract getCookies(opts?: { domain?: string; url?: string }): Promise; abstract screenshot(options?: ScreenshotOptions): Promise; abstract tabs(): Promise; - abstract closeTab(index?: number): Promise; - abstract newTab(): Promise; abstract selectTab(index: number): Promise; // ── Shared DOM helper implementations ── diff --git a/src/browser/cdp.ts b/src/browser/cdp.ts index 94e23a77c..ada9994ba 100644 --- a/src/browser/cdp.ts +++ b/src/browser/cdp.ts @@ -223,14 +223,6 @@ class CDPPage extends BasePage { return []; } - async closeTab(_index?: number): Promise { - // Not supported in direct CDP mode - } - - async newTab(): Promise { - await this.bridge.send('Target.createTarget', { url: 'about:blank' }); - } - async selectTab(_index: number): Promise { // Not supported in direct CDP mode } diff --git a/src/browser/page.ts b/src/browser/page.ts index 489d627fb..39864f35a 100644 --- a/src/browser/page.ts +++ b/src/browser/page.ts @@ -129,18 +129,6 @@ export class Page extends BasePage { return Array.isArray(result) ? result : []; } - async closeTab(index?: number): Promise { - await sendCommand('tabs', { op: 'close', ...this._wsOpt(), ...(index !== undefined ? { index } : {}) }); - // Invalidate cached tabId — the closed tab might have been our active one. - // We can't know for sure (close-by-index doesn't return tabId), so reset. - this._tabId = undefined; - } - - async newTab(): Promise { - const result = await sendCommand('tabs', { op: 'new', ...this._wsOpt() }) as { tabId?: number }; - if (result?.tabId) this._tabId = result.tabId; - } - async selectTab(index: number): Promise { const result = await sendCommand('tabs', { op: 'select', index, ...this._wsOpt() }) as { selected?: number }; if (result?.selected) this._tabId = result.selected; diff --git a/src/clis/douyin/_shared/browser-fetch.test.ts b/src/clis/douyin/_shared/browser-fetch.test.ts index a053355a9..2a1234faa 100644 --- a/src/clis/douyin/_shared/browser-fetch.test.ts +++ b/src/clis/douyin/_shared/browser-fetch.test.ts @@ -8,7 +8,6 @@ function makePage(result: unknown): IPage { getCookies: vi.fn(), snapshot: vi.fn(), click: vi.fn(), typeText: vi.fn(), pressKey: vi.fn(), scrollTo: vi.fn(), getFormState: vi.fn(), wait: vi.fn(), tabs: vi.fn(), - closeTab: vi.fn(), newTab: vi.fn(), selectTab: vi.fn(), networkRequests: vi.fn(), consoleMessages: vi.fn(), scroll: vi.fn(), autoScroll: vi.fn(), installInterceptor: vi.fn(), getInterceptedRequests: vi.fn(), diff --git a/src/clis/douyin/_shared/transcode.test.ts b/src/clis/douyin/_shared/transcode.test.ts index bfe8a1abc..d3a31ad3b 100644 --- a/src/clis/douyin/_shared/transcode.test.ts +++ b/src/clis/douyin/_shared/transcode.test.ts @@ -19,8 +19,6 @@ function makePage(): IPage { getFormState: vi.fn(), wait: vi.fn(), tabs: vi.fn(), - closeTab: vi.fn(), - newTab: vi.fn(), selectTab: vi.fn(), networkRequests: vi.fn(), consoleMessages: vi.fn(), diff --git a/src/clis/douyin/draft.test.ts b/src/clis/douyin/draft.test.ts index 21f1deac6..cf00898b5 100644 --- a/src/clis/douyin/draft.test.ts +++ b/src/clis/douyin/draft.test.ts @@ -86,8 +86,6 @@ function createPageMock( getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/facebook/search.test.ts b/src/clis/facebook/search.test.ts index 5a2a183dd..b3501b8fc 100644 --- a/src/clis/facebook/search.test.ts +++ b/src/clis/facebook/search.test.ts @@ -32,8 +32,6 @@ function createMockPage(): IPage { getFormState: vi.fn().mockResolvedValue({}), wait: vi.fn(), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn(), - newTab: vi.fn(), selectTab: vi.fn(), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue(''), diff --git a/src/clis/substack/utils.test.ts b/src/clis/substack/utils.test.ts index 476f4aa48..9b9d6c5e2 100644 --- a/src/clis/substack/utils.test.ts +++ b/src/clis/substack/utils.test.ts @@ -14,8 +14,6 @@ function createPageMock(evaluateResult: unknown): IPage { getFormState: vi.fn().mockResolvedValue({}), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/xiaohongshu/comments.test.ts b/src/clis/xiaohongshu/comments.test.ts index ba340c841..8966f3b5e 100644 --- a/src/clis/xiaohongshu/comments.test.ts +++ b/src/clis/xiaohongshu/comments.test.ts @@ -15,8 +15,6 @@ function createPageMock(evaluateResult: any): IPage { getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/xiaohongshu/creator-note-detail.test.ts b/src/clis/xiaohongshu/creator-note-detail.test.ts index a58590a54..7c14c108e 100644 --- a/src/clis/xiaohongshu/creator-note-detail.test.ts +++ b/src/clis/xiaohongshu/creator-note-detail.test.ts @@ -22,8 +22,6 @@ function createPageMock(evaluateResult: any): IPage { getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/xiaohongshu/creator-notes.test.ts b/src/clis/xiaohongshu/creator-notes.test.ts index 68cba62de..41dd74c0f 100644 --- a/src/clis/xiaohongshu/creator-notes.test.ts +++ b/src/clis/xiaohongshu/creator-notes.test.ts @@ -26,8 +26,6 @@ function createPageMock(evaluateResult: any, interceptedRequests: any[] = []): I getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/xiaohongshu/download.test.ts b/src/clis/xiaohongshu/download.test.ts index 43b66f192..e83a43da3 100644 --- a/src/clis/xiaohongshu/download.test.ts +++ b/src/clis/xiaohongshu/download.test.ts @@ -29,8 +29,6 @@ function createPageMock(evaluateResult: any): IPage { getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/xiaohongshu/note.test.ts b/src/clis/xiaohongshu/note.test.ts index 5ec00b655..ca3b9ef86 100644 --- a/src/clis/xiaohongshu/note.test.ts +++ b/src/clis/xiaohongshu/note.test.ts @@ -16,8 +16,6 @@ function createPageMock(evaluateResult: any): IPage { getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/xiaohongshu/publish.test.ts b/src/clis/xiaohongshu/publish.test.ts index 55ead8891..80834dc77 100644 --- a/src/clis/xiaohongshu/publish.test.ts +++ b/src/clis/xiaohongshu/publish.test.ts @@ -25,8 +25,6 @@ function createPageMock(evaluateResults: any[], overrides: Partial = {}): getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/clis/xiaohongshu/search.test.ts b/src/clis/xiaohongshu/search.test.ts index 15d8799eb..ca89254a6 100644 --- a/src/clis/xiaohongshu/search.test.ts +++ b/src/clis/xiaohongshu/search.test.ts @@ -20,8 +20,6 @@ function createPageMock(evaluateResults: any[]): IPage { getFormState: vi.fn().mockResolvedValue({ forms: [], orphanFields: [] }), wait: vi.fn().mockResolvedValue(undefined), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn().mockResolvedValue(undefined), - newTab: vi.fn().mockResolvedValue(undefined), selectTab: vi.fn().mockResolvedValue(undefined), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/pipeline/executor.test.ts b/src/pipeline/executor.test.ts index ca7ad5553..54bdee210 100644 --- a/src/pipeline/executor.test.ts +++ b/src/pipeline/executor.test.ts @@ -20,8 +20,6 @@ function createMockPage(overrides: Partial = {}): IPage { getFormState: vi.fn().mockResolvedValue({}), wait: vi.fn(), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn(), - newTab: vi.fn(), selectTab: vi.fn(), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue(''), diff --git a/src/pipeline/steps/download.test.ts b/src/pipeline/steps/download.test.ts index bf177eb51..192170679 100644 --- a/src/pipeline/steps/download.test.ts +++ b/src/pipeline/steps/download.test.ts @@ -34,8 +34,6 @@ function createMockPage(getCookies: IPage['getCookies']): IPage { getFormState: vi.fn().mockResolvedValue({}), wait: vi.fn(), tabs: vi.fn().mockResolvedValue([]), - closeTab: vi.fn(), - newTab: vi.fn(), selectTab: vi.fn(), networkRequests: vi.fn().mockResolvedValue([]), consoleMessages: vi.fn().mockResolvedValue([]), diff --git a/src/types.ts b/src/types.ts index e01cceef1..cb31594ec 100644 --- a/src/types.ts +++ b/src/types.ts @@ -56,8 +56,6 @@ export interface IPage { getFormState(): Promise; wait(options: number | WaitOptions): Promise; tabs(): Promise; - closeTab(index?: number): Promise; - newTab(): Promise; selectTab(index: number): Promise; networkRequests(includeStatic?: boolean): Promise; consoleMessages(level?: string): Promise;