【发布时间】:2020-04-14 16:21:52
【问题描述】:
我成功地浏览了一个网站,登录并获得了我需要的信息。但是,当我切换到使用 headless 为 true 的相同代码时,它会在我尝试等待的每一行上超时。
const self = {
browser: null,
page: null,
initialize: async () => {
self.browser = await puppeteer.launch({
headless: true,
});
self.page = await self.browser.newPage();
/* Go to homepage */
await self.page.goto(SHIPT_URL, { waitUntil: "networkidle0" });
},
getResults: async () => {
await self.page.type("#email", email, { delay: 100 });
await self.page.type("#password", password, { delay: 100 });
let loginButton = await self.page.$("button.sc-fzplWN");
if (loginButton) {
await loginButton.click();
await self.page.waitForNavigation({ waitUntil: "networkidle0" }); // Hangs here
await self.page.waitForSelector("a.pointer.link.gray900"); // Hangs here if I remove above waitForNavigation
我已经尝试对此进行研究并尝试了几种不同的方法,例如设置我的用户代理,将 .click 和 waitForNavigation 放入 promise.all,在 waitForNavigation 中删除“waitUntil”,并在 .click 上删除 await,但似乎没有正在工作。
编辑。所以看起来登录不起作用,它说错误的用户名或电子邮件,这是没有意义的,因为当我不在无头时它可以工作。这需要进一步研究
【问题讨论】:
标签: node.js web-scraping puppeteer