最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Puppeteer不会显示单击文本字段后显示的日历

IT培训 admin 3浏览 0评论

Puppeteer不会显示单击文本字段后显示的日历

我正在使用Puppeteer进行网络抓取,我遇到了麻烦。我试图抓住的网站是这个one,我正在尝试创建一个日历的屏幕截图,在点击“立即预订”>“日期”按钮后出现。

const puppeteer = require('puppeteer');
const fs = require('fs');
    void (async () => {
        try {
            const browser = await puppeteer.launch({headless: false});
            const page = await browser.newPage();         
            await page.goto('');
            await page.setViewport({ width: 1920, height: 938 });       
            await page.waitForSelector('.m-hotel-info > .l-container > .l-header-section > .l-m-col-2 > .m-button');
            await page.click('.m-hotel-info > .l-container > .l-header-section > .l-m-col-2 > .m-button');
            await page.waitForSelector('.modal-content');
            await page.waitFor(5000);
            await page.waitForSelector('.js-recent-search-inputs .js-datepick-container .l-h-field-input')
            await page.click('.js-recent-search-inputs .js-datepick-container .l-h-field-input');
            await page.waitFor(5000);
            await page.screenshot({ path: 'myscreenshot.png'});
            await browser.close();
        } catch (error) {
            console.log(error);
        }

})()

这就是myscreenshot.png应包含的内容:

但我得到了这个:

如您所见,myscreenshot.png不包含日历。我不明白我做错了什么,因为我点击了正确的节点,我甚至给它足够的时间来装载所有东西。

先感谢您!

编辑:我忘了说我也尝试过Puppeteer recorder以实现这一点,我也没有运气。

回答如下:

由于你有很多.l-h-field-input元素,我会尝试在那里更具体。这对我有用:

await page.click('.js-recent-search-inputs .js-datepick-container .l-h-field-input');

Puppeteer不会显示单击文本字段后显示的日历

我正在使用Puppeteer进行网络抓取,我遇到了麻烦。我试图抓住的网站是这个one,我正在尝试创建一个日历的屏幕截图,在点击“立即预订”>“日期”按钮后出现。

const puppeteer = require('puppeteer');
const fs = require('fs');
    void (async () => {
        try {
            const browser = await puppeteer.launch({headless: false});
            const page = await browser.newPage();         
            await page.goto('');
            await page.setViewport({ width: 1920, height: 938 });       
            await page.waitForSelector('.m-hotel-info > .l-container > .l-header-section > .l-m-col-2 > .m-button');
            await page.click('.m-hotel-info > .l-container > .l-header-section > .l-m-col-2 > .m-button');
            await page.waitForSelector('.modal-content');
            await page.waitFor(5000);
            await page.waitForSelector('.js-recent-search-inputs .js-datepick-container .l-h-field-input')
            await page.click('.js-recent-search-inputs .js-datepick-container .l-h-field-input');
            await page.waitFor(5000);
            await page.screenshot({ path: 'myscreenshot.png'});
            await browser.close();
        } catch (error) {
            console.log(error);
        }

})()

这就是myscreenshot.png应包含的内容:

但我得到了这个:

如您所见,myscreenshot.png不包含日历。我不明白我做错了什么,因为我点击了正确的节点,我甚至给它足够的时间来装载所有东西。

先感谢您!

编辑:我忘了说我也尝试过Puppeteer recorder以实现这一点,我也没有运气。

回答如下:

由于你有很多.l-h-field-input元素,我会尝试在那里更具体。这对我有用:

await page.click('.js-recent-search-inputs .js-datepick-container .l-h-field-input');
发布评论

评论列表 (0)

  1. 暂无评论