使用node调用chrome(基于selenium-webdriver包)

下载测试版chrome和chromedriver

https://googlechromelabs.github.io/chrome-for-testing/

把chromedriver复制到chrome的文件里

设置环境变量

编写代码

javascript 复制代码
const { Builder, Browser, By, Key, until } = require('selenium-webdriver')
const puppeteer = require('puppeteer')

//查询
const chromiumSearch = async (req, res) => {
  const { type = '' } = req.body

  if (type === 'puppeteer') {
    async function pageScreenshot(url, path = 'screenshot.png') {
      const browser = await puppeteer.launch()
      const page = await browser.newPage()
      await page.goto(url)
      await page.screenshot({ path })
      await browser.close()
    }

    // 使用函数将指定网页转换为图片
    pageScreenshot('https://www.baidu.com', '/temp/ai/puppeter/example.png')

    res.send({
      code: 200,
      data: {},
      message: '成功',
    })
  } else if (type === 'selenium-webdriver') {
    let driver = await new Builder().forBrowser(Browser.CHROME).build()

    try {
      //await driver.get('https://www.baidu.com')
      await driver.get('http://localhost:85/test1.html')

      // await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN)
      // await driver.wait(until.titleIs('webdriver - Google Search'), 3000)
      // await driver.wait(until.titleIs('webdriver - Google Search'), 1000)

    // 等待页面加载完成
    // await driver.wait(until.titleIs('Example Domain'), 10000);
 
    // 滚动到页面顶部
    await driver.executeScript('window.scrollTo(0, 0);');
 
    // 等待一会,确保页面加载和渲染完成
    await new Promise(resolve => setTimeout(resolve, 3000));
 
    // 获取页面截图并保存为图片
    const screenshot = await driver.takeScreenshot();
    const base64Data = screenshot.replace(/^data:image\/png;base64,/, '');
    const fs = require('fs');
    let now = Date.now()
    fs.writeFileSync(`/temp/ai/chromium/${now}.png`, base64Data, 'base64');
 
    console.log('网页已转换成图片: screenshot.png');


    } finally {
      await driver.quit()
    }

    res.send({
      code: 200,
      data: {},
      message: '成功',
    })
  } else {
    res.send({
      code: 400,
      data: {},
      message: '参数错误:type',
    })
  }
}

module.exports = {
  chromiumSearch,
}

参考链接:

https://blog.csdn.net/qq_52867389/article/details/132197894

人工智能学习网站

https://chat.xutongbao.top

相关推荐
火柴就是我27 分钟前
Android 打包报错 25.0.3
android·前端
BD_Marathon28 分钟前
消息对象中字段的说明
java·前端·python
八荒启·交互动画30 分钟前
Web特效025—用 Canvas 2D 做Web特效的定义与边界:这支画笔能做到哪一步
前端·webgl·网页特效·八荒启-交互动画·八荒启
Ai-_Man31 分钟前
您您这可以把Dola的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。用AI导出鸭,答案是可以的
开发语言·前端·人工智能·小程序
excel1 小时前
Nuxt 中使用 useHead 优化 SEO 与 GEO
前端
IT_陈寒2 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端
计算机魔术师2 小时前
Muse Spark跑赢Gemini,但真正的底牌是这种设计
前端
PYB32 小时前
【Web·JS·基础】函数的使用和展运算符...objs
前端·javascript
Helix2502 小时前
Chrome 快捷键效率提升:10 个常用快捷键,把浏览速度提升一个量级
chrome·google·浏览器·使用技巧·效率工具·快捷键·爆红教程
指针向南2 小时前
Chrome读不了HEIC怎么办:原生解码和WASM两条路
前端·图像处理·人工智能·chrome·计算机视觉·wasm