diff --git a/packages/app/script.js b/packages/app/script.js index b2359396..3d54055e 100644 --- a/packages/app/script.js +++ b/packages/app/script.js @@ -53,7 +53,8 @@ process.on('message', async (message) => { /** 加载油猴 */ const pathToExtension = path.join(__dirname, './extensions/Tampermonkey'); - launchOptions.args = [`--disable-extensions-except=${pathToExtension}`, `--load-extension=${pathToExtension}`]; + launchOptions.args = + [`--disable-extensions-except=${pathToExtension}`, `--load-extension="${pathToExtension}"`]; const { browser: _browser, page: _page } = await ocs.launchScripts({ userDataDir, @@ -103,7 +104,7 @@ process.on('message', async (message) => { } else if (action === 'close') { console.log(bgBlueBright(loggerPrefix('info')), '任务已关闭!'); logger.info('任务已关闭!'); - await browser.close(); + await browser?.close(); browser = undefined; page = undefined; } else if (action === 'call') { diff --git a/packages/scripts/src/script.ts b/packages/scripts/src/script.ts index 51112515..b513ae12 100644 --- a/packages/scripts/src/script.ts +++ b/packages/scripts/src/script.ts @@ -1,5 +1,5 @@ import { OCSApi } from '@ocsjs/common'; -import { Browser, BrowserContext, chromium, LaunchOptions, Page } from 'playwright'; +import { Browser, BrowserContext, BrowserType, chromium, LaunchOptions, Page, webkit } from 'playwright'; import { CX, ZHS } from '.'; import { ScriptFunction, ScriptOptions } from './types'; @@ -58,9 +58,19 @@ process.on('uncaughtException', (e) => { */ export async function launchScripts({ userDataDir, launchOptions, scripts, sync = true, init }: LaunchScriptsOptions) { let browser: BrowserContext; + let target: BrowserType; + + /** 确定浏览器类型 */ + if (launchOptions.executablePath?.includes('Firefox')) { + throw new Error('暂不支持 firefox 浏览器,请切换其他浏览器重试。'); + } else if (launchOptions.executablePath?.includes('Safari')) { + target = webkit; + } else { + target = chromium; + } if (userDataDir) { - browser = await chromium.launchPersistentContext(userDataDir, { + browser = await target.launchPersistentContext(userDataDir, { viewport: null, ignoreHTTPSErrors: true, ...launchOptions diff --git a/packages/web/src/pages/setting/index.vue b/packages/web/src/pages/setting/index.vue index c91e1129..be184679 100644 --- a/packages/web/src/pages/setting/index.vue +++ b/packages/web/src/pages/setting/index.vue @@ -23,10 +23,10 @@