是否可以检测元素是否存在,然后提示用户输入?

时间:2017-10-22 22:50:52

标签: node.js headless puppeteer

所以我有一个用例场景,我想检查是否存在某些东西,即安全复选框。如果是,则提示用户输入。我已经有了另一个包含提示但不确定如何实现以将其与此结合起来的包。

var result = await new Promise( function (resolve, reject) {
    prompt.get(schema, function (err, result) {
        console.log('Command-line input received:');
        console.log('  password: ' + result.password);
        resolve(result);
        reject("error with prompt")
    })

});
console.log(result);
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto(url);

try {
    await page.waitFor("#security", { timeout: 3000 });
    // do something if there is a security box
}
catch (e) {
    console.error('no security');
}

修改

可以通过使用带有waitFor

的try catch来检查
try {
    await page.waitFor("#login-form-os-captcha", { timeout: 1000 });
    console.log("there is captcha")
}
catch (e) {
    console.error('no captcha');
    // process.exit(1);
}