aws ec2 puppeteer测试工具配置

puppeteer 配置

puppeteer安装指南会安装2个库

  • puppeteer:自动下载chromium,然后使用puppeteer-core驱动,可以通过环境变量配置
  • puppeteer-core:核心库并不下载chromium,通过api接口调用

本地安装和测试没有问题启动参数指定自管chrome

const puppeteer = require('puppeteer-core');
 
(async () => {
  const browser = await puppeteer.launch({
    executablePath: 'C:\\Users\\ASUS\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe', 
    headless:false})
  const page = await browser.newPage();
  await page.goto('https://bing.com');
  await page.screenshot({path: 'example.png'});
  await browser.close();
})();

在aws ec2上运行测试脚本报错:

Error: Failed to launch the browser process!
/home/ec2-user/.cache/puppeteer/chrome/linux-1045629/chrome-linux/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory

理论上安装puppeteer之后不跳过download chromium会自动下载chromium到/home/ec2-user/.cache/puppeteer/chrome/linux-1045629/chrome-linux/chrome,只需要安装依赖库即可,但是尝试无效,需要按照以下说明安装chromium,不是很理解。

查看puppeteer github issue,这是个已知问题,Running Puppeteer on AWS EC2 instance running Amazon-Linux

Now Puppeteer can launch Chromium to run your tests. If you do not enable EPEL and if you continue installing chromium as part of npm install, Puppeteer cannot launch Chromium due to unavailablity of libatk-1.0.so.0 and many more packages.

需要进行如下配置

sudo amazon-linux-extras install epel -y
sudo yum install -y chromium

指执行以下测试效果如下

const puppeteer = require('puppeteer');
 
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.bing.com');
  await page.screenshot({path: 'example.png'});
  await browser.close();
})();   

访问中文网站会出现字符乱码,因为访问bing会自动跳转到cn.bing.com,访问英文网站正常

在这里插入图片描述
参考这里解决中文乱码,效果如下
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值