Javascript 如何使用Puppeter单击Iframe中的按钮?

Javascript 如何使用Puppeter单击Iframe中的按钮?,javascript,iframe,puppeteer,Javascript,Iframe,Puppeteer,我对木偶演员还不熟悉,所以对它不太了解。这是我到目前为止的代码,一切正常 但我希望它在将文本放入字段后单击页面上的登录按钮,但我不知道如何在我的一生中做到这一点。我试过很多不同的方法,但都没有效果。这方面的任何帮助都会很棒 以防万一你需要它 我尝试了一种输入框架url的解决方法,我不确定这是否有帮助,但下面是代码(main.js): 这是供您测试的运行版本。只需键入“node main”。(当然,您需要安装Puppeter(npm i Puppeter))…我尝试了一种输入帧url的解决方法,

我对木偶演员还不熟悉,所以对它不太了解。这是我到目前为止的代码,一切正常

但我希望它在将文本放入字段后单击页面上的登录按钮,但我不知道如何在我的一生中做到这一点。我试过很多不同的方法,但都没有效果。这方面的任何帮助都会很棒

以防万一你需要它


我尝试了一种输入框架url的解决方法,我不确定这是否有帮助,但下面是代码(main.js):


这是供您测试的运行版本。只需键入“node main”。(当然,您需要安装Puppeter(npm i Puppeter))…

我尝试了一种输入帧url的解决方法,我不确定这是否有帮助,但下面是代码(main.js):


这是供您测试的运行版本。只需键入“node main”。(当然你需要安装木偶师(npm i木偶师))…

这是我在上面运行时的代码


const pup = require('puppeteer');

(async () => {
  console.log('launch browser');
  const browser = await pup.launch({headless: false});

   //SELECTORS:
   var userInputSel = '#username';
   var passInputSel = '#password';
   var loginBtnSel = '#auth_login_ws_header > form > button';
   var myUser = "Nastygamenation"; //PUT YOUR USERNAME HERE!!!
   var myPass = "test"; //PUT YOUR PASSWORD HERE!!!

  console.log('new page');
  const page = await browser.newPage();

  console.log('goto');
  await page.setViewport({ width: 1920, height: 1080 });
  await page.goto('https://server.nitrado.net/usa/rent-gameserver', { waitUntil: "networkidle2", timeout: 60000 });
  await page.waitFor(5000);
  console.log('extract login iframe');
  var iframes = await page.frames();
  var loginFrame = iframes.find(f => f.url().indexOf("oauth.nitrado.net") > -1);
  await page.waitFor(5000);
  console.log('evaluate iframe');
  /*await loginFrame.evaluate(() => {
    document.getElementById('username').value = 'Nastygamenation';
    document.getElementById('password').value = 'test';
  });*/
  await page.waitFor(7000);
  console.log('Logged in > going to logs');
  await page.waitForSelector(userInputSel);
  await page.type(userInputSel, myUser);
  await page.waitForSelector(passInputSel);
  await page.type(passInputSel, myPass);
  await page.waitForSelector(loginBtnSel);
  await page.click(loginBtnSel);
  await page.waitFor(300000);
  console.log('done');
  await browser.close();
})()
错误地

  throw err;
  ^

Error: Cannot find module 'C:\Users\logan\Desktop\GamerBot\test.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}```

这是我在上面运行时的代码


const pup = require('puppeteer');

(async () => {
  console.log('launch browser');
  const browser = await pup.launch({headless: false});

   //SELECTORS:
   var userInputSel = '#username';
   var passInputSel = '#password';
   var loginBtnSel = '#auth_login_ws_header > form > button';
   var myUser = "Nastygamenation"; //PUT YOUR USERNAME HERE!!!
   var myPass = "test"; //PUT YOUR PASSWORD HERE!!!

  console.log('new page');
  const page = await browser.newPage();

  console.log('goto');
  await page.setViewport({ width: 1920, height: 1080 });
  await page.goto('https://server.nitrado.net/usa/rent-gameserver', { waitUntil: "networkidle2", timeout: 60000 });
  await page.waitFor(5000);
  console.log('extract login iframe');
  var iframes = await page.frames();
  var loginFrame = iframes.find(f => f.url().indexOf("oauth.nitrado.net") > -1);
  await page.waitFor(5000);
  console.log('evaluate iframe');
  /*await loginFrame.evaluate(() => {
    document.getElementById('username').value = 'Nastygamenation';
    document.getElementById('password').value = 'test';
  });*/
  await page.waitFor(7000);
  console.log('Logged in > going to logs');
  await page.waitForSelector(userInputSel);
  await page.type(userInputSel, myUser);
  await page.waitForSelector(passInputSel);
  await page.type(passInputSel, myPass);
  await page.waitForSelector(loginBtnSel);
  await page.click(loginBtnSel);
  await page.waitFor(300000);
  console.log('done');
  await browser.close();
})()
错误地

  throw err;
  ^

Error: Cannot find module 'C:\Users\logan\Desktop\GamerBot\test.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}```

获取错误
internal/modules/cjs/loader.js:985 throw err;^错误:在Function.module处找不到模块“C:\Users\logan\Desktop\GamerBot\test.js”。\u在Function.module处解析文件名(internal/modules/cjs/loader.js:982:15)。\u在Function.executeUserPoint[作为runMain](internal/modules/run\main.js:74:12)处加载(internal/modules/cjs/cjs/loader.js:864:27)在internal/main/run_main_module.js:18:47{代码:'module_NOT_FOUND',requireStack:[]
我对它进行了编辑,这样它就可以添加我使用的全部代码,并且应该运行良好,这样你就可以在提取所需的部分之前进行测试…只是复制并粘贴了整个代码,仍然会出现相同的错误。没关系!成功了!你是一个传奇!但是我正试图将它放在我的commands文件夹中并重命名该文件,但它不起作用?我的目标是下载日志文件并将其读取到我的discord服务器。我还不知道该怎么做,但这是一个开始!我在这方面已经坚持了好几天,你帮了我很多。因此,感谢你的帮助:)获取错误
internal/modules/cjs/loader.js:985 throw err;^error:找不到模块C:\Users\logan\Desktop\GamerBot\test.js在Function.Module._resolveFilename(internal/modules/cjs/loader.js:982:15)在Function.Module._load(internal/modules/cjs/loader.js:864:27)在Function.executeUserEntryPoint[as runMain](internal/modules/run_main.js:74:12)在internal/main/run_main______模块.js:18:47{代码:“未找到模块”,requireStack:[]
我对它进行了编辑,这样它就可以添加我使用的全部代码,并且应该运行良好,这样你就可以在提取所需的部分之前进行测试…只是复制并粘贴了整个代码,仍然会出现相同的错误。没关系!成功了!你是一个传奇!但是我正试图将它放在我的commands文件夹中并重命名该文件,但它不起作用?我的目标是下载日志文件并将其读取到我的discord服务器。我还不知道我要怎么做,但这是一个开始!我在这方面已经坚持了好几天,而你只是帮了我很多。所以,谢谢你的帮助:)