Javascript $$.eval后的木偶演员点击功能

Javascript $$.eval后的木偶演员点击功能,javascript,puppeteer,chromium,Javascript,Puppeteer,Chromium,我想下载图片,我在谷歌上搜索使用木偶。但是,单击下面的图像按钮后,$。eval功能不起作用。它说找不到与选择器div[jsname=“I4bIT”]匹配的元素。我想知道是否使用$$.eval单击某个内容会更改页面实例?事先非常感谢 async function findAndDownloadImage(page, elem = 'hello') { try { await page.goto(`https://www.google.com/search?q=${elem}

我想下载图片,我在谷歌上搜索使用木偶。但是,单击下面的图像按钮后,
$。eval
功能不起作用。它说
找不到与选择器div[jsname=“I4bIT”]
匹配的元素。我想知道是否使用
$$.eval
单击某个内容会更改页面实例?事先非常感谢

async function findAndDownloadImage(page, elem = 'hello') {
    try {
        await page.goto(`https://www.google.com/search?q=${elem}+expression`);

        await page.$$eval('.HF9Klc.iJddsb', elem => elem[1].click()); //click picture button

        await page.$eval('div[jsname="I4bIT"]', clickAction); //click tool button
        await page.$eval('div[aria-label="大小"]', clickAction); //click sizeButton 
        await page.$eval('a[aria-label="大"]', clickAction); //click largeOption 

        
        await page.$eval('.rg_i.Q4LuWd', clickAction); //click 1st image

    } catch (e) {
        console.log(e)
    }
}

您需要在第一次单击之后等待,直到图像搜索选项卡的元素加载到DOM中。可通过以下方式实现:

wait page.$$eval('.HF9Klc.iJddsb',elem=>elem[1]。单击()//点击图片按钮
wait page.waitForSelector('div[jsname=“I4bIT”]”)//等待图像搜索选项卡加载v1
等待页面$eval('div[jsname=“I4bIT”]”,单击操作)//单击工具按钮
...
…或:

wait page.$$eval('.HF9Klc.iJddsb',elem=>elem[1]。单击()//点击图片按钮
等待page.waitForNavigation()//等待图像搜索选项卡加载v2
等待页面$eval('div[jsname=“I4bIT”]”,单击操作)//单击工具按钮
...

您需要在第一次单击后等待,直到图像搜索选项卡的元素加载到DOM中。可通过以下方式实现:

wait page.$$eval('.HF9Klc.iJddsb',elem=>elem[1]。单击()//点击图片按钮
wait page.waitForSelector('div[jsname=“I4bIT”]”)//等待图像搜索选项卡加载v1
等待页面$eval('div[jsname=“I4bIT”]”,单击操作)//单击工具按钮
...
…或:

wait page.$$eval('.HF9Klc.iJddsb',elem=>elem[1]。单击()//点击图片按钮
等待page.waitForNavigation()//等待图像搜索选项卡加载v2
等待页面$eval('div[jsname=“I4bIT”]”,单击操作)//单击工具按钮
...

您能同时解决它吗?您能同时解决它吗?