Javascript I';我在使用木偶演员方面有困难。也可以';t在下面提供的网站中找不到登录按钮的选择器

Javascript I';我在使用木偶演员方面有困难。也可以';t在下面提供的网站中找不到登录按钮的选择器,javascript,node.js,web-scraping,puppeteer,Javascript,Node.js,Web Scraping,Puppeteer,下面是我正在尝试的代码,请帮助 我面临两个问题, 1.浏览器在打开,但在某一时间后返回 2.我找不到登录按钮选择器。我选择的选择器不工作,可能是因为它是嵌套的 const puppeteer = require('puppeteer'); // const URL = 'http://164.52.197.129/signin'; const chromeOptions = { headless:false, defaultViewport: null}; (async function

下面是我正在尝试的代码,请帮助 我面临两个问题, 1.浏览器在打开,但在某一时间后返回 2.我找不到登录按钮选择器。我选择的选择器不工作,可能是因为它是嵌套的

const puppeteer = require('puppeteer');
// const URL = 'http://164.52.197.129/signin';
const chromeOptions = {
  headless:false,
  defaultViewport: null};
(async function main() {
  const browser = await puppeteer.launch(chromeOptions);
  const page = await browser.newPage();
  //await page.setDefaultNavigationTimeout(0);
console.log("Opening page");
  await page.goto(('http://164.52.197.129/signin'), { waitUntil: 'networkidle2' , timeout: 60000 });
console.log("Page opened");
await page.waitForSelector('#email', {timeout: 60000});
console.log("Inputting username");
await page.type('#email', 'guest@gmail.com');
console.log("Username input completed");
await page.waitForSelector('#password', {timeout: 60000});
console.log("Inputting password");
await page.type('#password', 'sdah1234');
console.log("Password input completed");
await page.click('#app > div > main > div > div > div > form > div > div.v-card__text > div > div.text-xs-center.col > button');
await page.waitForNavigation({waitUntil: 'networkidle2'});
})()

我建议这样的算法:

  • 打开页面
  • 等待重定向(旋转木马出现)
  • 再次要求签署表单(单击
    页面的链接。单击()
    无效,因此我们使用
    页面。评估()
  • 等待表格
  • 由于表单是在
    page.type()
    之前自动完成的,并且输入是双倍的,因此我们再次使用
    page.evaluate()
  • 单击并等待
    Promise.all()
    中的导航以避免竞争条件
  • const puppeter=require('puppeter');
    常数色度选项={
    无头:错,
    defaultViewport:null};
    (异步函数main(){
    const browser=wait puppeter.launch(chromeOptions);
    const page=wait browser.newPage();
    等待页面。转到('http://164.52.197.129/signin“),{waitUntil:'networkidle2',超时:60000});
    wait page.waitForSelector(“.carousel-3d-container”);
    等待page.waitForSelector('a[href=“/signin”]”);
    等待页面。评估(()=>{document.querySelector('a[href=“/sign”]”)。单击();});
    wait page.waitForSelector('#email',{timeout:60000});
    wait page.waitForSelector('#password',{timeout:60000});
    等待页面。评估(()=>{
    document.querySelector(“#email”).value='0guest@gmail.com';
    document.querySelector(“#password”).value='sdah1234';
    });
    等待承诺([
    页面。单击(“#应用程序表单按钮”),
    page.waitForNavigation({waitUntil:'networkidle2'}),
    ]);
    控制台日志(“完成”);
    })();