如何使用Spectron访问客户端窗口JavaScript全局变量

时间:2018-11-25 22:52:54

标签: javascript electron spectron

我正在尝试使用Spectron测试Electron应用程序。 但是我无法测试客户端窗口javascript全局变量。 这是我的简化代码。 请帮我。 谢谢。

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>MY ELECTRON</title>
        <script type="text/javascript" src="script.js"></script>
    <link href="./style.css" rel="stylesheet">
</head>
<body>
</body>
</html>

script.js

let mode;
function onload_func(){
    mode = 'normal';
}
window.onload = onload_func;

spec.js

const Application = require('spectron').Application
const assert = require('assert')
const electronPath = require('electron')
const path = require('path')
let app;
describe('Application launch', function () {
  this.timeout(10000)
  beforeEach(function () {
    app = new Application({
      path: electronPath,
      args: [path.join(__dirname, '../src')]
    })
    return app.start()
  })
  afterEach(function () {
    if (app && app.isRunning()) {
      return app.stop()
    }
  })
    it('initial mode',function(){
        assert.equal(app.client.mode,'normal');
    })
})

1 个答案:

答案 0 :(得分:0)

我不确定是否可以解决您的特定测试,但是app.browserWindow应该可以解决问题,因为正如他们所说:

  

它使您可以访问当前的BrowserWindow并包含所有   API。

请注意,它是require('electron').remote.getCurrentWindow()

的别名

了解更多:https://github.com/electron/spectron#browserwindow