You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Puppeteer调用Google Lens以图搜图遇无文件输入框上传难题

用Puppeteer实现Google Lens图片上传搜索

Google Lens的上传界面确实不会直接显示<input type="file">标签,这类元素通常被隐藏在UI按钮背后。你可以直接定位到这个隐藏的文件输入元素,然后调用Puppeteer的uploadFile方法完成上传,无需依赖可见按钮的冗余点击。

修改后的脚本示例

import puppeteer from 'puppeteer';

(async () => {
  const browser = await puppeteer.launch({ headless: false, args: [] });
  const page = await browser.newPage();
  await page.goto('https://www.google.com.my/imghp');
  
  // 点击打开Google Lens入口按钮
  const lensButton = await page.$('div.dRYYxd > div.nDcEnd');
  await lensButton.click();
  
  // 定位隐藏的文件输入元素(需注意:Google页面元素选择器可能随版本更新变化)
  const fileInput = await page.$('input[type="file"][accept="image/*,image/heif,image/heic"]');
  
  // 直接调用上传方法,Puppeteer支持对隐藏元素执行此操作
  await fileInput.uploadFile('./Cute-Cat.jpg');
  
  // 等待搜索结果加载完成(可根据实际需求调整等待逻辑)
  await page.waitForNavigation({ waitUntil: 'networkidle2' });
  
  // 后续可添加结果处理逻辑
  // await browser.close();
})();

关键说明

  • 精准定位隐藏input:通过type="file"和accept属性组合定位,这是Google Lens上传功能对应的核心输入元素。如果选择器失效,可在浏览器开发者工具中手动查找最新的元素选择器。
  • 简化交互流程:跳过多次点击可见按钮的步骤,直接操作核心输入元素,避免UI交互延迟导致的不稳定问题。
  • 等待结果加载:上传完成后需等待页面导航或网络空闲,确保搜索结果完全渲染后再进行后续操作。

内容的提问来源于stack exchange,提问作者codingmickey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:19:57