我正在尝试使用Puppeteer为我的CLI node.js程序创建一个最小的GUI,以便我可以打包和分发beta版本。通过命令行运行时,Puppeteer脚本在快速浏览器中输入信息,而在通过电子GUI调用时,则非常慢。也许有一种方法可以调用终端实例并通过该实例运行程序?
电子GUI中的渲染器进程等待主进程中的按钮被单击。单击后,它将调用我的Puppeteer脚本,该脚本登录到Gmail帐户。
console.log(moment().format('hh:mm:ss:ms') + ': Going to login...');
let login_button = await page.waitForXPath('//*[@id="gb_70"]');
login_button.click();
let enter_email = await page.waitForXPath('//*[@id="identifierId"]');
await enter_email.click();
console.log(moment().format('hh:mm:ss:ms') + ': Entering email...');
await page.keyboard.type(email);
let button0 = await page.waitForXPath('//*[@id="identifierNext"]');
await button0.click();
await page.waitForXPath('//*[@id="password"]/div[1]/div/div[1]/input');
console.log(moment().format('hh:mm:ss:ms') + ': Entering password...');
await page.keyboard.type(email_password);
let button1 = await page.waitForXPath('//*[@id="passwordNext"]');
await button1.click();
await page.goto('https://gmail.com/', {waitUntil: 'load', timeout: 0});
由于伪造人功能page.keyboard.type()没有延迟,因此应立即输入信息,这是通过CLI直接运行程序时发生的情况。但是,在单击电子GUI中的按钮后运行它时,page.keyboard.type()函数进入的速度非常慢。
编辑:我刚刚再次测试...这仅在Puppeteer创建的标题窗口处于焦点位置时发生。当我将焦点切换回电子GUI时,它将再次加速。为什么会这样?