我试图让代码执行等待所有图像加载,然后puppeteer截取屏幕截图。当调用 initData() 函数时,我的 DOM 被填充,该函数在客户端 js 文件中定义。延迟或超时是一种选择,但我相信必须有更有效的方法来做到这一点。
(async (dataObj) => {
const url = dataObj.url;
const payload = dataObj.payload;
const browser = await puppeteer.launch({ headless: false,devtools:false});
const page = await browser.newPage();
await page.goto(url,{'waitUntil': 'networkidle0'});
await page.evaluate((payload) => {
initData(payload);
//initData is a client side function that populates the DOM, need to wait
//here till the images are loaded.
},payload)
await page.setViewport({ width: 1280, height: 720 })
await page.screenshot({ path: 'test.png' });
await browser.close();
})(dataObj)
Run Code Online (Sandbox Code Playgroud)
提前致谢。
javascript screenshot node.js google-chrome-headless puppeteer
我想要实现的是从给定的输入数字中获取字母组合.例如.如果我输入111,输出应该是['AAA','KA','AK'].如果输入为1111,则输出应为['AAAA','KAA','AKA','AAK','KK'].部分工作代码如下,我得到['K','K']输入111:
<html>
<head>
<h1>Javascript</h1>
</head>
<body>
<script>
var dataset =
{A:'1',B:'2',C:'3',D:'4',E:'5',F:'6',G:'7',H:'8',I:'9',
J:'10',K:'11',L:'12',M:'13',N:'14',O:'15',P:'16',Q:'17',R:'18',
S:'19',T:'20',U:'21',V:'22',W:'23',X:'24',Y:'25',Z:'26'};
var arr = [];
var z;
var result = [];
var find = function(input){
for(var key in dataset) {
if(dataset[key] === input) {
return key;
}
}
}
var foo = function(x){
z = x.toString();
for(var i=0;i<z.length;i++){
arr.push(z.charAt(i));
}
for(var i=0;i<arr.length;i++){
if(arr[i]+arr[i+1] <= 26){
var returnedkey = find(arr[i]+arr[i+1]);
result.push(returnedkey);
}
}
}
foo(111);
console.log(arr);
console.log(result);
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
我很困惑如何进一步,哪个是正确的方法,提前谢谢!