【问题标题】:How to get data from json file to js using puppeteer如何使用 puppeteer 从 json 文件中获取数据到 js
【发布时间】:2021-10-09 16:44:50
【问题描述】:

如何从json文件中获取用户名和密码等数据?

const { errors } = require('puppeteer');
const puppeteer = require('puppeteer-extra');

(async () => {
    const browser = await puppeteer.launch({
      headless: false,
      ignoreHTTPSErrors: true,
      webpage: true,
      slowMo: 3,
      executablePath: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
    });

    const page = await browser.newPage();
    await installMouseHelper(page); // Makes mouse visible
    await page.setDefaultNavigationTimeout(0);
    await page.evaluate(() => { debugger; });
    await page.goto('https://nike.com/my/login');

    await page.waitFor(500);
    const login = '[data-componentname="emailAddress"]';
    loginButton = await page.waitForSelector(login),
    await loginButton.click(),
    await loginButton.type("test@gmail.com");

    await page.waitFor(500);
    const loginPsw = '[data-componentname="password"]';
    loginPswButton = await page.waitForSelector(loginPsw),
    await loginPswButton.click(),
    await loginPswButton.type("Qwert12345.");

    await page.waitFor(500);
    const signInBtn = '[class="nike-unite-submit-button loginSubmit nike-unite-component"]';
    signInBtnButton = await page.waitForSelector(signInBtn),
    await signInBtnButton.click();

})();
{
"nikeSNKRS": {
    "accounts": [
        {
            "note": "",
            "accounts": [
                {
                    "user": "test@gmail.com",
                    "password": "Qwert12345.",
                    "access_token": "",
                    "refresh_token": "",
                    "expires_in": "",
                    "token_type": "",
                    "country": "",
                    "phone": "",
                    "expires": "???",
                    "proxy": ""
                }
            ]
        }
    ]
  }
}

【问题讨论】:

    标签: javascript html node.js api puppeteer


    【解决方案1】:

    如果您不想通过回调嵌套来搞乱现有代码,请创建一个 async 方法来读取包含您的数据的文件:

    const fs = require("fs");
    
    const getData = (file) => {
      return new Promise((resolve, reject) => { 
        fs.readFile(file, (err, data) => {
          if (err) return reject(err);
          try {
            const json = JSON.parse(data);
            resolve(json);
          } catch (E) {
            reject(E);
          }
        }
      }
    }
    

    如果你的数据在./data.json,在适当的地方添加/修改你的代码:

    const json = await getData("./data.json");
    //...
    const user = json.nikeSNKRS.accounts[0].accounts[0].user;
    await loginButton.type(user);
    // ...
    const password = json.nikeSNKRS.accounts[0].accounts[0].password
    await loginPswButton.type(password);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-24
      • 2018-10-23
      • 1970-01-01
      • 2020-07-13
      • 2021-03-28
      • 1970-01-01
      • 2021-01-25
      • 2014-09-06
      相关资源
      最近更新 更多