Javascript Puppeter.launch取决于操作系统
是否可以根据OS.platform设置浏览器启动的参数逻辑,如下所示:Javascript Puppeter.launch取决于操作系统,javascript,puppeteer,Javascript,Puppeteer,是否可以根据OS.platform设置浏览器启动的参数逻辑,如下所示: const puppeteer = require('puppeteer'); const browserFetcher = puppeteer.createBrowserFetcher(); (async () => { const platforme = await browserFetcher.platform() const browser = await puppeteer.
const puppeteer = require('puppeteer');
const browserFetcher = puppeteer.createBrowserFetcher();
(async () => {
const platforme = await browserFetcher.platform()
const browser = await puppeteer.launch(
??? ()=>{
if (platforme=="win64"||"win32")
//run this params headless: false; defaultViewport: null;
else if (platforme=="linux")
//run this params headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox','--disable-dev-shm-usage']
});
const page = await browser.newPage();
如果确实需要这种模糊的简洁性,可以使用带条件运算符的扩展:
{
const platforme=“win64”;
常量配置={(
platforme===“win64”| | platforme===“win32”{headless:false}:
platforme==“linux”{headless:true}:
{}
) };
console.log(config);
}
{
const platforme=“linux”;
常量配置={(
platforme===“win64”| | platforme===“win32”{headless:false}:
platforme==“linux”{headless:true}:
{}
) };
console.log(config);
}
{
const platforme=“aix”;
常量配置={(
platforme===“win64”| | platforme===“win32”{headless:false}:
platforme==“linux”{headless:true}:
{}
) };
console.log(config);
}
在中查看更多和一些备选方案
另一种变体:
const配置={
win64:{headless:false},
win32:{headless:false},
linux:{headless:true},
}
{
const platforme=“win64”;
const config=configs[platforme]??{};
console.log(config);
}
{
const platforme=“linux”;
const config=configs[platforme]??{};
console.log(config);
}
{
const platforme=“aix”;
const config=configs[platforme]??{};
console.log(config);
}
由于vsemozhebuti
const puppeteer = require('puppeteer');
const browserFetcher = puppeteer.createBrowserFetcher();
(async () => {
const platforme = await browserFetcher.platform()
const config = { ...(
platforme === "win64" || platforme === "win32" ? { headless: false, defaultViewport: null } :
platforme === "linux" ? {headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox','--disable-dev-shm-usage']} :
{}
) };
console.log(config);
const browser = await puppeteer.launch(config);
const page = await browser.newPage();
//code
})();
上帝保佑你,伙计!与其用工作代码更新问题,不如添加一个。这样,原始问题上下文将被保留,您的解决方案将受到与任何其他建议答案相同的投票的约束。拿着这本书读一读——你可以通过勾选绿色复选框来接受答案(包括你自己的答案)。我已经回滚了编辑,但您可以将代码移动到答案,以帮助未来的访问者。谢谢