运行 电子应用程序中的噩梦 js 脚本

Run nightmare js script inside electron app

所以我有这个 nightmarejs 代码,我想在您单击电子应用程序中的按钮时执行(打开新的 window 和 运行 脚本)。但是我通过互联网搜索并没有对我有用:/(我有一个mac)

var Nightmare = require('nightmare');
var nightmare = Nightmare({
  electronPath: require('${__dirname}/node_modules/electron'),
  show: true
});

nightmare
  .goto('http://yahoo.com')
  .type('form[action*="/search"] [name=p]', 'github nightmare')
  .click('form[action*="/search"] [type=submit]')
  .wait('#main')
  .evaluate(function () {
    return document.querySelector('#main .searchCenterMiddle li a').href
  })
  .end()
  .then(function (result) {
    document.getElementById("results").innerHTML = result;
  })
  .catch(function (error) {
    console.error('Search failed:', error);
  });

const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow
let mainWindow;

function createWindow() {
    mainWindow = new BrowserWindow({
        title: "Dummy",
        fullscreenable: false,
        resizable: false,
        alwaysOnTop: false,
        width: 420,
        height: 250,
        'web-preferences': {
            'web-security': false
        }
    })
    mainWindow.loadURL(`file://${__dirname}/index.html`)
    mainWindow.on('closed', function() {
        mainWindow = null
    })
}

app.on('ready', createWindow)
app.on('window-all-closed', function() {
    if (process.platform !== 'darwin') {
        app.quit()
    }
})
app.on('activate', function() {
    if (mainWindow === null) {
        createWindow()
    }
})

谢谢, 伯特伦

我没有看到任何可以触发您想要的代码的东西 运行。

如果你把它交给我工作,我会做两件事:

  • 将噩梦代码包装在一个函数中,这样你就可以

    要求("./mynighmare.js").sleepPoorly()

  • 在您的 index.html 中,添加一个调用上述行的按钮以实际 运行 您的代码。

...然后我会做一大堆测试,因为我的初稿不能正常工作:)