Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit e9107b3

Browse files
committed
Refactor execution context errors
1 parent d48420e commit e9107b3

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

common/execution_context.go

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -198,18 +198,24 @@ func (e *ExecutionContext) evaluate(
198198
WithAwaitPromise(true).
199199
WithUserGesture(true)
200200
if remoteObject, exceptionDetails, err = action.Do(cdp.WithExecutor(apiCtx, e.session)); err != nil {
201-
return nil, fmt.Errorf("cannot evaluate expression (%s): %w", expressionWithSourceURL, exceptionDetails)
201+
return nil, fmt.Errorf("cannot call function on expression (%q) "+
202+
"in execution context (%d) in frame (%v): %w",
203+
expressionWithSourceURL, e.id, e.Frame().ID(), err)
202204
}
203205
if exceptionDetails != nil {
204-
return nil, fmt.Errorf("cannot evaluate expression (%s): %w", expressionWithSourceURL, exceptionDetails)
206+
return nil, fmt.Errorf("cannot call function on expression (%q) "+
207+
"in execution context (%d) in frame (%v): %w",
208+
expressionWithSourceURL, e.id, e.Frame().ID(), err)
205209
}
206210
if remoteObject == nil {
207211
return
208212
}
209213
if opts.returnByValue {
210214
res, err = valueFromRemoteObject(apiCtx, remoteObject)
211215
if err != nil {
212-
return nil, fmt.Errorf("cannot extract value from remote object (%s): %w", remoteObject.ObjectID, err)
216+
return nil, fmt.Errorf("cannot extract value from remote object (%s) "+
217+
"using (%s) in execution context (%d) in frame (%v): %w",
218+
remoteObject.ObjectID, expressionWithSourceURL, e.id, e.Frame().ID(), err)
213219
}
214220
} else if remoteObject.ObjectID != "" {
215221
// Note: we don't use the passed in apiCtx here as it could be tied to a timeout
@@ -220,7 +226,9 @@ func (e *ExecutionContext) evaluate(
220226
for _, arg := range args {
221227
result, err := convertArgument(apiCtx, e, arg)
222228
if err != nil {
223-
return nil, fmt.Errorf("cannot convert argument (%q): %w", arg, err)
229+
return nil, fmt.Errorf("cannot convert argument (%q) "+
230+
"in execution context (%d) in frame (%v): %w",
231+
arg, e.id, e.Frame().ID(), err)
224232
}
225233
arguments = append(arguments, result)
226234
}
@@ -237,18 +245,24 @@ func (e *ExecutionContext) evaluate(
237245
WithAwaitPromise(true).
238246
WithUserGesture(true)
239247
if remoteObject, exceptionDetails, err = action.Do(cdp.WithExecutor(apiCtx, e.session)); err != nil {
240-
return nil, fmt.Errorf("cannot call function on expression (%q) in execution context (%d): %w", expressionWithSourceURL, e.id, err)
248+
return nil, fmt.Errorf("cannot call function on expression (%q) "+
249+
"in execution context (%d) in frame (%v): %w",
250+
expressionWithSourceURL, e.id, e.Frame().ID(), err)
241251
}
242252
if exceptionDetails != nil {
243-
return nil, fmt.Errorf("cannot call function on expression (%q) in execution context (%d): %w", expressionWithSourceURL, e.id, err)
253+
return nil, fmt.Errorf("cannot call function on expression (%q) "+
254+
"in execution context (%d) in frame (%v): %w",
255+
expressionWithSourceURL, e.id, e.Frame().ID(), err)
244256
}
245257
if remoteObject == nil {
246258
return
247259
}
248260
if opts.returnByValue {
249261
res, err = valueFromRemoteObject(apiCtx, remoteObject)
250262
if err != nil {
251-
return nil, fmt.Errorf("cannot extract value from remote object (%s): %w", remoteObject.ObjectID, err)
263+
return nil, fmt.Errorf("cannot extract value from remote object (%s) "+
264+
"in execution context (%d) in frame (%v): %w",
265+
remoteObject.ObjectID, e.id, e.Frame().ID(), err)
252266
}
253267
} else if remoteObject.ObjectID != "" {
254268
// Note: we don't use the passed in apiCtx here as it could be tied to a timeout

0 commit comments

Comments
 (0)