【问题标题】:Puppeteer only focus on button not clicking on buttonPuppeteer 只关注按钮而不是点击按钮
【发布时间】:2019-08-20 20:19:22
【问题描述】:

试图自动化点击网站page上的按钮的过程,但它只关注按钮而不是点击它。

我尝试过使用 puppeteer click() 功能和焦点 + 按 Enter 功能,它们都不起作用

const puppeteer = require('puppeteer');

async function run() {

const browser = await puppeteer.launch({headless:true});

  const page = await browser.newPage();
const BUTTON_SELECTOR = 'body > section > section > header > div.reply-button-row > button';      
  await page.goto('https://bozeman.craigslist.org/zip/d/bozeman-panasonic-36-tv/6837588995.html')
await page.waitFor(2000); 

await page.waitFor(BUTTON_SELECTOR);

await page.click(BUTTON_SELECTOR)
//await page.focus(BUTTON_SELECTOR)
//await page.keyboard.press('Enter');
await page.screenshot({ path: 'screenshots/image.png' });  
  browser.close();
}

run();

代码输出图片:https://imgur.com/m0CYqNiqwe

预期输出图像:https://imgur.com/Hmg3BgVasd

【问题讨论】:

    标签: node.js web-scraping puppeteer google-chrome-headless headless-browser


    【解决方案1】:

    试试这个选择器:

    const BUTTON_SELECTOR = 'button[data-href^="/__SERVICE_ID"]'
    

    【讨论】:

    • 试过不行,输出和上面一样,只关注按钮
    【解决方案2】:

    它点击了,但截图太早了,直到显示新块。您可以等待更多时间或等待块被创建并可见:

    await page.click(BUTTON_SELECTOR)
    await page.waitFor(2000);
    await page.screenshot({ path: 'image.png' });
    

    await page.click(BUTTON_SELECTOR)
    await page.waitForSelector('div.reply-info aside.reply-flap', { visible: true });
    await page.screenshot({ path: 'image.png' });
    

    【讨论】:

    猜你喜欢
    • 2020-04-13
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2022-01-20
    相关资源
    最近更新 更多