Кукловод фокусируется только на кнопке, а не на кнопке - PullRequest
0 голосов
/ 29 марта 2019

Пытается автоматизировать процесс нажатия кнопки на веб-сайте страница , но фокусируется только на кнопке, не нажимающей на нее.

Я пытался использовать функцию «Кукольник» () (щелчок) и фокусировку + нажмите клавишу ввода, ни одна из них не работает

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

Ответы [ 2 ]

2 голосов
/ 30 марта 2019

Кликает, но скриншот сделан слишком рано, пока не появится новый блок. Вы можете подождать еще некоторое время или подождать, пока блок будет создан и станет видимым:

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' });
0 голосов
/ 29 марта 2019

Попробуйте этот селектор вместо:

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