Javascript I';我在使用木偶演员方面有困难。也可以';t在下面提供的网站中找不到登录按钮的选择器
下面是我正在尝试的代码,请帮助强> 我面临两个问题, 1.浏览器在打开,但在某一时间后返回 2.我找不到登录按钮选择器。我选择的选择器不工作,可能是因为它是嵌套的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
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'}),
]);
控制台日志(“完成”);
})();