Я бы сказал, что здесь происходит то, что использование toMatch
предполагает отображение текста. Однако в вашем случае вы хотите проверить текст, связанный с кнопкой.
Вы должны попробовать что-то вроде этого:
await expect(page).toMatchElement('input[value="I\'m Feeling Lucky"]');
Обновление 1:
Другая возможность (и вы сами ее подняли) заключается в том, что время проверки истекает до того, как страница сможет загрузиться. По моему опыту, это общая проблема с выполнением кода в режиме без головы. Это очень быстро Иногда слишком быстро. Операторы могут быть выполнены до того, как все в интерфейсе будет готово.
В этом случае вам лучше добавить в ваш код несколько операторов waitForSelector
следующим образом:
await page.waitForSelector('input[value="I\'m Feeling Lucky"]');
Это обеспечит отображение выбранного селектора перед тем, как перейти к следующему шагу в вашем коде. Делая это, вы сделаете свои скрипты намного более надежными, сохраняя при этом эффективность - эти ожидания не будут замедлять ваш код. Они будут просто приостанавливаться до тех пор, пока puppeteer
не зарегистрирует селектор, с которым вы хотите взаимодействовать / проверить, как отображаемый. В большинстве случаев вы даже не заметите паузу, поскольку она будет настолько короткой (я говорю миллисекунды).
Но это сделает ваши скрипты безупречными, а также гарантирует, что ничего не сломается, если веб-страница медленнее реагирует по какой-либо причине во время выполнения теста.