From 90e614afa43fba8dd17d0d51f76a94114f5106eb Mon Sep 17 00:00:00 2001 From: Niklas Date: Fri, 14 Aug 2026 11:57:29 +0200 Subject: [PATCH] feat(chromium): await thenable waitForExpression (#1617) --- pkg/modules/chromium/tasks.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/modules/chromium/tasks.go b/pkg/modules/chromium/tasks.go index f2eb2eec..b1d2c20e 100644 --- a/pkg/modules/chromium/tasks.go +++ b/pkg/modules/chromium/tasks.go @@ -708,7 +708,15 @@ func waitForExpressionBeforePrintActionFunc(logger *slog.Logger, disableJavaScri return fmt.Errorf("context done while evaluating '%s': %w", expression, ctx.Err()) case <-ticker.C: var ok bool - evaluate := chromedp.Evaluate(expression, &ok) + // If the provided expression is a async function (thenable) it will be awaited + // (async () => { + // document.querySelector('#accept').click(); + // await new Promise(r => setTimeout(r, 2000)); + // return true; + // })() + evaluate := chromedp.Evaluate(expression, &ok, func(p *runtime.EvaluateParams) *runtime.EvaluateParams { + return p.WithAwaitPromise(true) + }) err := evaluate.Do(ctx) if err != nil {