Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 检查傀儡机中是否存在图像_Node.js_Puppeteer - Fatal编程技术网

Node.js 检查傀儡机中是否存在图像

Node.js 检查傀儡机中是否存在图像,node.js,puppeteer,Node.js,Puppeteer,hi stack我有一个快速的问题,我想看看这个元素是否存在,我只需要返回true或false这是下面的html代码,我已经尝试了几个小时,似乎无法找出我缺少的任何帮助将不胜感激。谢谢各位 <img class="js-login-available login-available" src="/assets/img/form_validation-bad.png"> 您也可以使用这样的评估方法来解决此问题 let serachElemnt='img.js-login-availa

hi stack我有一个快速的问题,我想看看这个元素是否存在,我只需要返回true或false这是下面的html代码,我已经尝试了几个小时,似乎无法找出我缺少的任何帮助将不胜感激。谢谢各位

<img class="js-login-available login-available" src="/assets/img/form_validation-bad.png">

您也可以使用这样的评估方法来解决此问题

let serachElemnt='img.js-login-available login-available[src]';
    let checkForElement = await page.evaluate((sel)=>{
           let elementCheck =Array.from(document.querySelectorAll(sel));
           if(elementCheck.length){
               return true
           }else return false;

    },serachElemnt);
console.log(checkForElement);

请试试这个。

我的解决方案是

if(await page.$$eval('img.js-login-available.login-available[src]', imgs => imgs.map(img => img.getAttribute('src')).includes('/assets/img/form_validation-ok.png'))){
    console.log(names[i])
}

为什么要使用
$$eval
而不仅仅是
$$
$$eval
在页面的上下文中运行--您正在登录浏览器而不是终端。老实说,我正在使用我找到的一个示例,即使我这样做,
等待页面。$$('img.js-login-available login available[src]')。然后(img=>console.log(img))
它仍然返回空数组
if(await page.$$eval('img.js-login-available.login-available[src]', imgs => imgs.map(img => img.getAttribute('src')).includes('/assets/img/form_validation-ok.png'))){
    console.log(names[i])
}