Настоятельно рекомендуется следить за ошибками при отладке безголовых скриптов - делать скриншоты, ждать появления необходимого элемента, а также перехватывать js-ошибки из контекста страницы, например:
page.on('pageerror', err => console.log(err));
С этимобратный вызов на месте становится понятным, почему результат равен undefined
:
[Ошибка: ReferenceError: бар не определен
Кажется, что переменная bar
не определено на целевой странице, поэтому присвоение testCase
невозможно, поэтому оно остается неопределенным.
Или, если вы уверены, что bar
действительно определено, возможно, оно создано позже в жизни страницы, после вы делаете page.evaluate
.В этом случае вы хотите использовать page.waitFor , чтобы дождаться его:
await page.goto(url)
await page.waitFor(() => typeof(testCase) !== "undefined") // <== WAITING
console.log(await page.evaluate(() => testCase));