Я пробую что-то очень простое:
- Перейдите на google.com
- Заполните поле поиска словом "сыр".
- Нажмите Enter в поле поиска
- Вывести текст заголовка первого результата
Так просто, но я не могу заставить его работать. Это код:
const playwright = require('playwright');
(async () => {
for (const browserType of ['chromium', 'firefox', 'webkit']) {
const browser = await playwright[browserType].launch();
try {
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://google.com');
await page.fill('input[name=q]', 'cheese');
await page.press('input[name=q]', 'Enter');
await page.waitForNavigation();
page.waitForSelector('div#rso h3')
.then(firstResult => console.log(`${browserType}: ${firstResult.textContent()}`))
.catch(error => console.error(`Waiting for result: ${error}`));
} catch(error) {
console.error(`Trying to run test on ${browserType}: ${error}`);
} finally {
await browser.close();
}
}
})();
Сначала я попытался получить первый результат с page.$()
, но это не сработало. Немного изучив проблему, я обнаружил, что page.waitForNavigation()
, который, как я думал, будет решением, но это не так.
Пользуюсь последней версией драматурга: 1.0.2.