puppeteer - 静态页面的img引用的当前文件夹是什么
问题描述
当使用page.setContent
一些静态 Html 内容的方法渲染页面时,当前文件夹中的属性(例如src
ofimg
标签)是什么?
例如,对于:
await page.setContent("<img src="./pic.jpg" />");
文件夹在哪里./
?
解决方案
也许是undefined
,这是我的测试结果:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
page.on('request', request => console.log('send request: ' + request.url()));
page.on('console', message => console.log('console: ' + message.text()));
await page.setContent('<img src="./test.jpg" /><script>console.log("href="+window.location.href);</script>');
await browser.close();
})();
输出:
console: href=about:blank
页面 URL 是about:blank
并且没有发送请求。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
page.on('request', request => console.log('send request: ' + request.url()));
page.on('console', message => console.log('console: ' + message.text()));
await page.setContent('<base href="https://www.google.com"><img src="./test.jpg" /><script>console.log("href="+window.location.href);</script>');
await browser.close();
})();
输出:
console: href=about:blank
send request: https://www.google.com/test.jpg
console: Failed to load resource: the server responded with a status of 404 ()
在 URL 仍然存在时test.jpg
附加元素后的浏览器请求base
about:blank
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
page.on('request', request => console.log('send request: ' + request.url()));
page.on('console', message => console.log('console: ' + message.text()));
// set base href to local URL
await page.setContent('<base href="file:///abc/index.html"><img src="./test.jpg" /><script>console.log("href="+window.location.href);</script>');
await browser.close();
})();
输出:
console: href=about:blank
console: Not allowed to load local resource: file:///abc/test.jpg
send request: file:///abc/test.jpg
推荐阅读
- database - 如何保持不同数据库中的表同步?
- javascript - PHP 禁止从任何移动设备注册,只允许用户从桌面注册
- azure-active-directory - 增量 ARM 模板部署覆盖密钥保管库访问策略中的资源
- mysql - MYSQL/Laravel 迁移将复合键更改为自动增量
- sql - 插入到里面有几个选择
- php - 如何在点击时更改表格中的当前元素值?
- android - 在 Recyclerview 中按 Datewise 从 firestore 检索数据
- c - Xcode Mach-O 链接器 ID 错误
- android - android 上的 Http 客户端(向服务器发送字符串并获取字符串答案)
- python-3.x - 如何修剪和重塑数据框?