🌐

Spectronでjavascript errorが発生した場合の対処法

2021/08/28に公開

Abstract

Electronの公式テストフレームワークSpectronの公式サイトにある、Getting startedのコードを実行しても、以下のようなjavascript errorが発生した。

Test failed javascript error: Cannot convert undefined or null to object
  (Session info: chrome=91.0.4472.124)

原因

メインプロセスとレンダラープロセス間のセキュリティ設定。

対処法

以下のようにセキュリティを低くすると、Spectronが実行可能。
下記の設定では、セキュリティが低くなるので注意が必要。

const win = new BrowserWindow({
  webPreferences: {
    nodeIntegration: true,
    // ensures that both your preload scripts and Electron's internal logic run in a separate context
    contextIsolation: false,
    // Use main process modules from the renderer process.
    enableRemoteModule: true,
  },
});

詳細は、References #2をご参考ください。

環境

devDependencies

"electron": "^13.1.7",
"electron-builder": "^22.9.1",
"spectron": "^15.0.0"

References

  1. Spectron
    https://www.electronjs.org/spectron

  2. Chrome extension throwing a “Cannot convert undefined or null to object” error #738 (GitHub)
    https://github.com/electron-userland/spectron/pull/738

Electronではじめるデスクトップアプリケーション開発

Discussion