我如何使用 puppeteer 单击 div class?

How do i click in a div class using puppeteer?

我想点击一个按钮,但我只有 class name, i'm trying to use page.click, but never work so i try to add waitForSelector and always gives me time out,我的代码很糟糕,我只是想学习更多关于创建新项目的知识。

this is the item i'm trying to get

Also can be this item

const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

(async () => {
   const browser = await puppeteer.launch({
    headless: false,
    product : "chrome",
  });
  const page = await browser.newPage();
  await page.setViewport({
    width:1920,
    height:1080
  })

  try{
    await page.goto('https://br.betano.com/login/')
  await delay(1000)
  await page.keyboard.type('*******')
  await page.keyboard.press('Tab')
  await page.keyboard.type('******')
  await page.keyboard.press('Enter')
  await delay(5000)
  await page.goto('https://br.betano.com/casino/live/games/roleta-brasileira/444/tables/103910/')
  await delay(2000)
  await page.keyboard.press('Escape')
  await delay(10000)
  await page.waitForSelector('[class="header__more-games"]')
 await page.click('[class="header__more-games"]')

  }catch(err){
    console.error(err)
  }
  
 })();

您始终可以使用 selector 到 select 特定元素并单击它,或者您也可以使用 Xpath。

您可以通过以下方式获得 Select 或

  1. Right-click 在浏览器 Devtools 中的元素上。
  2. Select复制,然后复制Select或

现在,将这些行替换为下面的行。

await page.waitForSelector('[class="header__more-games"]')
await page.click('[class="header__more-games"]')

确保将 Your Selector Here 替换为实际的 select 或者您在上述步骤中复制的内容。

await page.waitForSelector('Your Selector Here');
const buttonClick = await page.$("Your Selector Here");
   
await buttonClick.click();

我知道如何在 iframe 中使用 link,在我的例子中 link 总是相同的,所以我只得到 link并在另一个水龙头中打开。像这样:

await page2.goto('https://cachedownload-br.p-content.gambling-malta.com/live/?tableId=103910&game=rol&preferedmode=real&language=pt-br&advertiser=ptt/&clienttype=casino')
await page2.bringToFront()
await delay(15000)
const [button] = await page2.$x("//button[contains(., 'Ok')]");
if (button) {
  await button.click();
}