javascript - 使用 puppeteer 的提示

标签 javascript prompt puppeteer

我正在尝试获取用户名和密码字段的用户输入,并使用它来使用 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/

相关文章:

javascript - 如何保存使用富文本编辑器创建的站点/文档的结构以再次创建只读 View 和可编辑的富文本编辑器?

javascript - 复杂的 RxJS 迭代器仅可见行

javascript - 在 ajax 中加载脚本和内容

windows - 将批处理文件 ECHO 传递到 PUSHD 命令提示符命令中

jquery - event.preventDefault 后恢复提交

Puppeteer:屏幕截图惰性图像不起作用

javascript - McMaster-Carr 的 'scrolling box' 布局

node.js - 什么 Node 模块提供 CLI 提示符?

javascript - 使用 puppeteer 在页面中基于文本的值搜索中使用正则表达式

javascript - 使用 puppeteer 永远抓取同一页面