我正在尝试获取用户名和密码字段的用户输入,并使用它来使用 puppeteer 填充网页中的字段。我的两个提示未正确存储,因为当我在 page.keyboard.type(username) 中调用它们时,它无法填充字段(我相信它是因为输入不是字符串,并且所需的参数是字符串)
const puppeteer = require('puppeteer');
const prompt = require('prompt');
prompt.start();
(async() => {
var result = await new Promise(function (resolve, reject) {
prompt.get('username', function (err, result) {
resolve(result);
});
});
var result2 = await new Promise(function (resolve, reject) {
prompt.get('password', function (err, result2) {
resolve(result2);
});
});
const browser = await puppeteer.launch({
headless: false
});
const username = String(result);
const password = String(result2);
const page = await browser.newPage();
await page.goto('');
const BUTTON_SELECTOR1 = '#post-3782 > div > div > p.clear > span > a > img';
await page.click(BUTTON_SELECTOR1);
const USERNAME_SELECTOR = '#username';
const PASSWORD_SELECTOR = '#password';
const BUTTON_SELECTOR = '#col2 > form > div:nth-child(3) > button';
await page.click(USERNAME_SELECTOR);
await page.keyboard.type(username);
await page.click(PASSWORD_SELECTOR);
await page.keyboard.type(password);
await page.click(BUTTON_SELECTOR);
await page.waitForNavigation();
await page.goto('');
/*
await page.close();
await browser.close();
*/
})();
最佳答案
函数prompt.get()
返回一个对象(即{ username: 'johndoe' }
)。
因此,以下示例展示了使用 prompt package 获取 Puppeteer 用户名和密码的最佳方法:
const credentials = await new Promise((resolve, reject) => {
prompt.get(['username', 'password'], (error, result) => {
resolve(result);
});
});
const username = credentials.username;
const password = credentials.password;
await page.type('#username', username);
await page.type('#password', password);
关于javascript - 使用 puppeteer 的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50442555/