@@ -62,16 +62,21 @@ export const click = definePageTool({
6262 const uid = request . params . uid ;
6363 const handle = await request . page . getElementByUid ( uid ) ;
6464 try {
65- await request . page . waitForEventsAfterAction ( async ( ) => {
66- await handle . asLocator ( ) . click ( {
67- count : request . params . dblClick ? 2 : 1 ,
68- } ) ;
69- } ) ;
65+ const { navigatedUrl} = await request . page . waitForEventsAfterAction (
66+ async ( ) => {
67+ await handle . asLocator ( ) . click ( {
68+ count : request . params . dblClick ? 2 : 1 ,
69+ } ) ;
70+ } ,
71+ ) ;
7072 response . appendResponseLine (
7173 request . params . dblClick
7274 ? `Successfully double clicked on the element`
7375 : `Successfully clicked on the element` ,
7476 ) ;
77+ if ( navigatedUrl ) {
78+ response . appendResponseLine ( `Navigated to ${ navigatedUrl } ` ) ;
79+ }
7580 if ( request . params . includeSnapshot ) {
7681 response . includeSnapshot ( ) ;
7782 }
@@ -99,7 +104,7 @@ export const clickAt = definePageTool({
99104 } ,
100105 handler : async ( request , response ) => {
101106 const page = request . page ;
102- await page . waitForEventsAfterAction ( async ( ) => {
107+ const { navigatedUrl } = await page . waitForEventsAfterAction ( async ( ) => {
103108 await page . pptrPage . mouse . click ( request . params . x , request . params . y , {
104109 clickCount : request . params . dblClick ? 2 : 1 ,
105110 } ) ;
@@ -109,6 +114,9 @@ export const clickAt = definePageTool({
109114 ? `Successfully double clicked at the coordinates`
110115 : `Successfully clicked at the coordinates` ,
111116 ) ;
117+ if ( navigatedUrl ) {
118+ response . appendResponseLine ( `Navigated to ${ navigatedUrl } ` ) ;
119+ }
112120 if ( request . params . includeSnapshot ) {
113121 response . includeSnapshot ( ) ;
114122 }
@@ -134,10 +142,15 @@ export const hover = definePageTool({
134142 const uid = request . params . uid ;
135143 const handle = await request . page . getElementByUid ( uid ) ;
136144 try {
137- await request . page . waitForEventsAfterAction ( async ( ) => {
138- await handle . asLocator ( ) . hover ( ) ;
139- } ) ;
145+ const { navigatedUrl} = await request . page . waitForEventsAfterAction (
146+ async ( ) => {
147+ await handle . asLocator ( ) . hover ( ) ;
148+ } ,
149+ ) ;
140150 response . appendResponseLine ( `Successfully hovered over the element` ) ;
151+ if ( navigatedUrl ) {
152+ response . appendResponseLine ( `Navigated to ${ navigatedUrl } ` ) ;
153+ }
141154 if ( request . params . includeSnapshot ) {
142155 response . includeSnapshot ( ) ;
143156 }
@@ -235,7 +248,7 @@ export const fill = definePageTool({
235248 } ,
236249 handler : async ( request , response , context ) => {
237250 const page = request . page ;
238- await page . waitForEventsAfterAction ( async ( ) => {
251+ const { navigatedUrl } = await page . waitForEventsAfterAction ( async ( ) => {
239252 await fillFormElement (
240253 request . params . uid ,
241254 request . params . value ,
@@ -244,6 +257,9 @@ export const fill = definePageTool({
244257 ) ;
245258 } ) ;
246259 response . appendResponseLine ( `Successfully filled out the element` ) ;
260+ if ( navigatedUrl ) {
261+ response . appendResponseLine ( `Navigated to ${ navigatedUrl } ` ) ;
262+ }
247263 if ( request . params . includeSnapshot ) {
248264 response . includeSnapshot ( ) ;
249265 }
@@ -263,7 +279,7 @@ export const typeText = definePageTool({
263279 } ,
264280 handler : async ( request , response ) => {
265281 const page = request . page ;
266- await page . waitForEventsAfterAction ( async ( ) => {
282+ const { navigatedUrl } = await page . waitForEventsAfterAction ( async ( ) => {
267283 await page . pptrPage . keyboard . type ( request . params . text ) ;
268284 if ( request . params . submitKey ) {
269285 await page . pptrPage . keyboard . press (
@@ -274,6 +290,9 @@ export const typeText = definePageTool({
274290 response . appendResponseLine (
275291 `Typed text "${ request . params . text } ${ request . params . submitKey ? ` + ${ request . params . submitKey } ` : '' } "` ,
276292 ) ;
293+ if ( navigatedUrl ) {
294+ response . appendResponseLine ( `Navigated to ${ navigatedUrl } ` ) ;
295+ }
277296 } ,
278297} ) ;
279298
@@ -295,12 +314,17 @@ export const drag = definePageTool({
295314 ) ;
296315 const toHandle = await request . page . getElementByUid ( request . params . to_uid ) ;
297316 try {
298- await request . page . waitForEventsAfterAction ( async ( ) => {
299- await fromHandle . drag ( toHandle ) ;
300- await new Promise ( resolve => setTimeout ( resolve , 50 ) ) ;
301- await toHandle . drop ( fromHandle ) ;
302- } ) ;
317+ const { navigatedUrl} = await request . page . waitForEventsAfterAction (
318+ async ( ) => {
319+ await fromHandle . drag ( toHandle ) ;
320+ await new Promise ( resolve => setTimeout ( resolve , 50 ) ) ;
321+ await toHandle . drop ( fromHandle ) ;
322+ } ,
323+ ) ;
303324 response . appendResponseLine ( `Successfully dragged an element` ) ;
325+ if ( navigatedUrl ) {
326+ response . appendResponseLine ( `Navigated to ${ navigatedUrl } ` ) ;
327+ }
304328 if ( request . params . includeSnapshot ) {
305329 response . includeSnapshot ( ) ;
306330 }
@@ -332,17 +356,24 @@ export const fillForm = definePageTool({
332356 } ,
333357 handler : async ( request , response , context ) => {
334358 const page = request . page ;
359+ let lastNavigatedUrl : string | undefined ;
335360 for ( const element of request . params . elements ) {
336- await page . waitForEventsAfterAction ( async ( ) => {
361+ const { navigatedUrl } = await page . waitForEventsAfterAction ( async ( ) => {
337362 await fillFormElement (
338363 element . uid ,
339364 element . value ,
340365 context as McpContext ,
341366 page ,
342367 ) ;
343368 } ) ;
369+ if ( navigatedUrl ) {
370+ lastNavigatedUrl = navigatedUrl ;
371+ }
344372 }
345373 response . appendResponseLine ( `Successfully filled out the form` ) ;
374+ if ( lastNavigatedUrl ) {
375+ response . appendResponseLine ( `Navigated to ${ lastNavigatedUrl } ` ) ;
376+ }
346377 if ( request . params . includeSnapshot ) {
347378 response . includeSnapshot ( ) ;
348379 }
@@ -419,7 +450,7 @@ export const pressKey = definePageTool({
419450 const tokens = parseKey ( request . params . key ) ;
420451 const [ key , ...modifiers ] = tokens ;
421452
422- await page . waitForEventsAfterAction ( async ( ) => {
453+ const { navigatedUrl } = await page . waitForEventsAfterAction ( async ( ) => {
423454 for ( const modifier of modifiers ) {
424455 await page . pptrPage . keyboard . down ( modifier ) ;
425456 }
@@ -432,6 +463,9 @@ export const pressKey = definePageTool({
432463 response . appendResponseLine (
433464 `Successfully pressed key: ${ request . params . key } ` ,
434465 ) ;
466+ if ( navigatedUrl ) {
467+ response . appendResponseLine ( `Navigated to ${ navigatedUrl } ` ) ;
468+ }
435469 if ( request . params . includeSnapshot ) {
436470 response . includeSnapshot ( ) ;
437471 }
0 commit comments