You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am using Nightmare.js inside an electron app with the webpack. But when I try to use Nightmare.js I am getting the following error
TypeError: window.Main.nightmare(...).goto is not a function
at Function.eval [as loginUser] (NightmareUtils.ts?fe62:9)
at handleSayHello (index.tsx?6a78:13)
at HTMLUnknownElement.callCallback (react-dom.development.js?6ac8:3945)
at Object.invokeGuardedCallbackDev (react-dom.development.js?6ac8:3994)
at invokeGuardedCallback (react-dom.development.js?6ac8:4056)
at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js?6ac8:4070)
at executeDispatch (react-dom.development.js?6ac8:8243)
at processDispatchQueueItemsInOrder (react-dom.development.js?6ac8:8275)
at processDispatchQueue (react-dom.development.js?6ac8:8288)
at dispatchEventsForPlugins (react-dom.development.js?6ac8:8299)
I am using webpack to preload the following code brige.ts
// @ts-nocheck
import { contextBridge, ipcRenderer } from 'electron'
import Nightmare from 'nightmare'
export const api = {
/**
* Here you can expose functions to the renderer process
* so they can interact with the main (electron) side
* without security problems.
*
* The function below can accessed using `window.Main.sayHello`
*/
sendMessage: (message: string) => {
ipcRenderer.send('message', message)
},
/**
* Provide an easier way to listen to events
*/
on: (channel: string, callback: Function) => {
ipcRenderer.on(channel, (_, data) => callback(data))
},
nightmare: () => {
return new Nightmare({
show: true
})
}
}
contextBridge.exposeInMainWorld('Main', api)
I have changed the bright.ts file to something like this
// @ts-nocheck
import { contextBridge, ipcRenderer } from 'electron'
import Nightmare from 'nightmare';
// const Nightmare = require('nightmare')
const nightmare = new Nightmare({ electronPath: require('electron'), show: true });
export const api = {
/**
* Here you can expose functions to the renderer process
* so they can interact with the main (electron) side
* without security problems.
*
* The function below can accessed using `window.Main.sayHello`
*/
sendMessage: (message: string) => {
ipcRenderer.send('message', message)
},
/**
* Provide an easier way to listen to events
*/
on: (channel: string, callback: Function) => {
ipcRenderer.on(channel, (_, data) => callback(data))
},
nightmare: (): Nightmare => {
// { electronPath: require('electron'), show: true }
console.log(nightmare)
return nightmare
}
}
contextBridge.exposeInMainWorld('Main', api)
And when I call, console.log(window.Main.nightmare()) I can see an interesting thing...
window.Main.nightmare() is not returning everything from nightmarejs.
I am using Nightmare.js inside an electron app with the webpack. But when I try to use Nightmare.js I am getting the following error
Here is how I am using Nightmare.js
I am using webpack to preload the following code brige.ts
I posted a question in StackOverflow as well. But didn't get any response.
https://stackoverflow.com/questions/68271424/unable-to-use-nightmare-js
The text was updated successfully, but these errors were encountered: