创意:
我正在建立一个机器人登录Instagram使用puppeteer
。
如果登录成功,则不会发生任何事情。当出现ID为slfErrorAlert
的错误时,bot会停止(因为登录不成功)。
问题:
按下登录按钮后,将检查第一条语句,之后检查第二条语句。
但是,应同时检查其中一个陈述是否正确。
这可能是伪代码:If (Login == true) continue;
else if (slfErrorAlert == visible) stop;
目前的程式码片段
if ((await instagram.page.url() !== loginURL) || (await instagram.page.waitForSelector('#slfErrorAlert'))) {
if (await instagram.page.url() !== loginURL) {
log.info("LogIn successfull")
log.info(instagram.page.url())
}
if (await instagram.page.waitForSelector('#slfErrorAlert')) {
let loginMessage = await instagram.page.$eval('#slfErrorAlert', element => element.innerHTML)
log.warn(`Client error - LogIn not possible: '${loginMessage}'`)
await instagram.browser.close()
return
}
}
完整代码如下:https://github.com/JueK3y/Instagram-automated-commenting/blob/main/public/src/js/instagram.js
1条答案
按热度按时间htzpubme1#
如果我没理解错的话,你想同时测试两个异步调用,你可以用函数
Promise.race
来实现。有关如何使用它的详细说明和扩展示例,请参见MDN web docs: Promise.race()