Locator chỉ báo là mình sẽ chọn element chứ chưa thực sự chọn nó, nên không cần tới await
Khi nào có việc gì phải dùng tới element thì mới chọn nó luôn. Điều này sẽ tiện nếu lúc báo element chưa xuất hiện
import { Page } from "npm:puppeteer";
// Initiate
const browser = await puppeteer.launch({
headless: false,
userDataDir: "./user_data",
args: minimal_args.concat(args),
});
const page = await browser.newPage();
await page.goto("https://facebook.com/");
// Create a post
await page.locator("::-p-text(What's on your mind)").click();
await page.keyboard.type(text);
// Click the next button
const nextButtonSelector = '*[aria-label="Next"][role="button"]';
await (await page.$(nextButtonSelector))!.click(); // this works
// await page.locator(nextButtonSelector).click(); // timeout
// Click the post button
await page.locator('*[aria-label="Post"][role="button"]').click();