gpt4 book ai didi

javascript - 无法使用ElectronJS运行NodeJS脚本(已更新)

转载 作者:行者123 更新时间:2023-12-03 12:32:45 26 4
gpt4 key购买 nike

客观的
我在project/api文件夹中单独编写了脚本。让我们以test.js为例,我正在通过module.exports导出它,现在运行我的 Electron 窗口,并使用button id="startTask"函数onclick()创建一个JavaScript文件。现在,我想在单击按钮时执行此test.js
但这是行不通的。
test.js

const puppeteer = require('puppeteer-core');
const exec_path = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'
const fs = require('fs');

async function test(){
let browser = await puppeteer.launch({headless: false, executablePath: exec_path})
let page = await browser.newPage();
if(fs.existsSync('./data/cookies.json')){
let cookie = fs.readFileSync('./data/cookies.json')
let cookieParsed = JSON.parse(cookie)
await page.setCookie(...cookieParsed)
await page.goto(BASE_URL, {waitUntil: ['load', 'networkidle0'], timeout: 0});
}else{
await browser.close();
console.log('No Cookies found')
}
}

module.exports = test;
HTML + JS
//This is located in my 'project/src' folder

//This is button.html


<button id="startTask" class = "btn btn-primary"> Start </button>

<script src="./button.js"></script>



//This is button.js

const test = require('../api/test');

document.getElementById("startTask").onclick = () =>{
try{

console.log("working")
test();

} catch(err){

console.log(err)
}
}

这是控制台上的输出
Electron Error
控制台上仅打印“正在运行”,Puppeteer脚本不执行。
谢谢你的帮助!
更新(发布问题后3小时)
我尝试了一个带有 test.js的普通程序
test.js(简单程序)
async function test(){
console.log("Great Cool Awesome")
}
module.exports = test;
输出
Electron Output on simple program
对于一个简单的程序,它执行脚本,但是我的程序需要puppeteer。
我面临的问题是什么?

最佳答案

您不是在等待test调用,因此很可能该程序在有机会启动该功能的网页之前运行到结束。
将代码更改为:

document.getElementById("startTask").onclick = async () =>{
try{

console.log("working")
await test();

} catch(err){

console.log(err)
}
}

关于javascript - 无法使用ElectronJS运行NodeJS脚本(已更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64114271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com