kavin
kavin

Reputation: 13

Puppeteer only focus on button not clicking on button

Trying to automate the process of clicking button on website page, but it only focuses on button not clicking on it.

I have tried using puppeteer click() fucntion and focus + press enter funtion none of them working

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();

Code output image : https://imgur.com/m0CYqNiqwe

Expected Output Image : https://imgur.com/Hmg3BgVasd

Upvotes: 1

Views: 3671

Answers (2)

vsemozhebuty
vsemozhebuty

Reputation: 13822

It clicks, but the screenshot is made too early, till the new block is shown. You can wait some more time or wait for the block to be created and be visible:

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

or

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

Upvotes: 2

Gilles Quénot
Gilles Quénot

Reputation: 185760

Try this selector instead :

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

Upvotes: 0

Related Questions