@@ -1738,7 +1738,7 @@ function requireSnapshotForElementAction(): void {
17381738 )
17391739}
17401740
1741- function pageTargetForElement ( contents : WebContents , elementId : number ) : PageExecutionTarget {
1741+ function pageTargetForElement ( elementId : number ) : PageExecutionTarget {
17421742 requireSnapshotForElementAction ( )
17431743 const target = driverScopeState ( ) . snapshotTargets . get ( elementId )
17441744 if ( ! target || ( 'isDestroyed' in target && target . isDestroyed ( ) ) ) {
@@ -2351,7 +2351,7 @@ async function captureSnapshot(
23512351 if ( tab . view . webContents !== contents ) {
23522352 throw new ToolError ( 'The active tab changed before the snapshot started. Try again.' )
23532353 }
2354- if ( elementId !== undefined && pageTargetForElement ( contents , elementId ) !== contents ) {
2354+ if ( elementId !== undefined && pageTargetForElement ( elementId ) !== contents ) {
23552355 throw new ToolError (
23562356 'Scoped snapshots require a top-page element. Omit elementId to capture framed content.'
23572357 )
@@ -2745,7 +2745,7 @@ async function executeToolInner(
27452745 const contents = session . requireAutomationTab ( ) . view . webContents
27462746 const elementId = requireNum ( params , 'elementId' )
27472747 const paths = uploadPaths ( params )
2748- const target = pageTargetForElement ( contents , elementId )
2748+ const target = pageTargetForElement ( elementId )
27492749 assertCurrentExecution ( )
27502750 const frame = 'getURL' in target ? target . mainFrame : target
27512751 const expression = `(${ String ( resolveFileInputTarget ) } )(${ elementId } )`
@@ -2816,8 +2816,7 @@ async function executeToolInner(
28162816 }
28172817 const waitedTab = session . requireAutomationTab ( )
28182818 const contents = waitedTab . view . webContents
2819- const elementTarget =
2820- elementId === undefined ? undefined : pageTargetForElement ( contents , elementId )
2819+ const elementTarget = elementId === undefined ? undefined : pageTargetForElement ( elementId )
28212820 if ( elementTarget && elementTarget !== contents ) {
28222821 throw new ToolError (
28232822 'Element-state waits are limited to the top page. Use a text or URL condition for framed content.'
@@ -2946,7 +2945,7 @@ async function executeToolInner(
29462945 const contents = session . requireAutomationTab ( ) . view . webContents
29472946 const elementId = num ( params , 'elementId' )
29482947 if ( elementId === undefined ) return await readWholePageText ( contents , executionDeadline )
2949- const target = pageTargetForElement ( contents , elementId )
2948+ const target = pageTargetForElement ( elementId )
29502949 return unwrapPageResult (
29512950 await execInPage ( target , readPageText , [ elementId ] , false , executionDeadline )
29522951 )
@@ -2961,7 +2960,7 @@ async function executeToolInner(
29612960 const elementId = num ( params , 'elementId' )
29622961 let elementClip : Record < string , unknown > | undefined
29632962 if ( elementId !== undefined ) {
2964- const target = pageTargetForElement ( contents , elementId )
2963+ const target = pageTargetForElement ( elementId )
29652964 if ( target !== contents ) {
29662965 throw new ToolError (
29672966 'Element screenshots are limited to the top page. Use browser_screenshot without elementId for framed content.'
@@ -3119,7 +3118,7 @@ async function executeToolInner(
31193118 const contents = clickedTab . view . webContents
31203119 const elementId = requireNum ( params , 'elementId' )
31213120 const click = pointerClick ( params )
3122- const target = pageTargetForElement ( contents , elementId )
3121+ const target = pageTargetForElement ( elementId )
31233122 const targetFrame = frameExecutionTarget ( target , contents )
31243123 let trusted = false
31253124 let activation = 'synthetic-pointer'
@@ -3596,7 +3595,7 @@ async function executeToolInner(
35963595 let stoppedIndex = 0
35973596 let dispatchStarted = false
35983597 const readField = async ( field : FormField ) => {
3599- const target = pageTargetForElement ( contents , field . elementId )
3598+ const target = pageTargetForElement ( field . elementId )
36003599 if ( target !== contents )
36013600 throw new ToolError (
36023601 'Form batches require top-page fields; use individual tools for framed fields.'
@@ -3757,7 +3756,7 @@ async function executeToolInner(
37573756 if ( typeof text !== 'string' ) throw new ToolError ( 'Missing required parameter "text"' )
37583757 const submit = params . submit === true
37593758 const contents = session . requireAutomationTab ( ) . view . webContents
3760- const target = pageTargetForElement ( contents , elementId )
3759+ const target = pageTargetForElement ( elementId )
37613760 const targetFrame = frameExecutionTarget ( target , contents )
37623761
37633762 // Native path: focus + select current content, then insert through the
@@ -4307,9 +4306,7 @@ async function executeToolInner(
43074306 const contents = session . requireAutomationTab ( ) . view . webContents
43084307 const elementId = num ( params , 'elementId' )
43094308 const target =
4310- elementId !== undefined
4311- ? pageTargetForElement ( contents , elementId )
4312- : focusedPageTarget ( contents )
4309+ elementId !== undefined ? pageTargetForElement ( elementId ) : focusedPageTarget ( contents )
43134310 const targetFrame = frameExecutionTarget ( target , contents )
43144311 assertCurrentExecution ( )
43154312 if ( elementId !== undefined ) assertElementActionCurrent ( contents , elementId , target )
@@ -4355,7 +4352,7 @@ async function executeToolInner(
43554352 const selection = values === undefined ? requireStr ( params , 'value' ) : ( values as string [ ] )
43564353 const contents = session . requireAutomationTab ( ) . view . webContents
43574354 const elementId = requireNum ( params , 'elementId' )
4358- const target = pageTargetForElement ( contents , elementId )
4355+ const target = pageTargetForElement ( elementId )
43594356 const targetFrame = frameExecutionTarget ( target , contents )
43604357 assertCurrentExecution ( )
43614358 assertElementActionCurrent ( contents , elementId , target )
@@ -4434,8 +4431,7 @@ async function executeToolInner(
44344431 throw new ToolError ( 'Missing required boolean parameter "checked"' )
44354432 }
44364433 const checked = params . checked
4437- const contents = session . requireAutomationTab ( ) . view . webContents
4438- const target = pageTargetForElement ( contents , elementId )
4434+ const target = pageTargetForElement ( elementId )
44394435 const before = toRecord (
44404436 unwrapPageResult (
44414437 await execInPage ( target , readCheckableElementState , [ elementId ] , false , executionDeadline )
@@ -4562,7 +4558,7 @@ async function executeToolInner(
45624558 )
45634559 }
45644560 const elementId = requireNum ( params , 'elementId' )
4565- const target = pageTargetForElement ( contents , elementId )
4561+ const target = pageTargetForElement ( elementId )
45664562 const targetFrame = frameExecutionTarget ( target , contents )
45674563 let beforePage = await pageActionState ( target , true , elementId )
45684564 let beforeElement = await activeElementState ( target )
@@ -4939,7 +4935,7 @@ async function executeToolInner(
49394935 ) : Promise < { x : number ; y : number ; element ?: string } > => {
49404936 const elementId = num ( params , `${ which } ElementId` )
49414937 if ( elementId !== undefined ) {
4942- const target = pageTargetForElement ( contents , elementId )
4938+ const target = pageTargetForElement ( elementId )
49434939 if ( frameExecutionTarget ( target , contents ) ) {
49444940 throw new ToolError (
49454941 `Dragging elements inside embedded frames is not supported. Use ${ which } X/${ which } Y viewport coordinates instead.`
0 commit comments