Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Puppeter.launch取决于操作系统_Javascript_Puppeteer - Fatal编程技术网

Javascript Puppeter.launch取决于操作系统

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.

是否可以根据OS.platform设置浏览器启动的参数逻辑,如下所示:

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
})();

上帝保佑你,伙计!与其用工作代码更新问题,不如添加一个。这样,原始问题上下文将被保留,您的解决方案将受到与任何其他建议答案相同的投票的约束。拿着这本书读一读——你可以通过勾选绿色复选框来接受答案(包括你自己的答案)。我已经回滚了编辑,但您可以将代码移动到答案,以帮助未来的访问者。谢谢