簡體   English   中英

如何在 puppeteer 中返回重定向鏈接的值?

[英]How do I return the value of a redirected link in puppeteer?

目標:我正在嘗試完成網站 (api) 身份驗證過程的第一步。 為此,最后一步是在重定向后獲取 url(地址欄)中的代碼(這是我的猜測)。

簡而言之,我已經弄清楚了如何輸入用戶名/密碼。 從那里它加載一個新頁面,然后該頁面加載另一個頁面(我最好的猜測是它會檢查以確保所有信息都是正確的),該頁面包含 url 中的代碼。

var puppeteer = require("puppeteer");
let clientInfo = require("./Client_Information.json");

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(
    `https://url-goes-here.com?response_type=code&client_id=${clientInfo.client_id}`
  );
  await page.screenshot({ path: "./ScreenShots/ScreenShot.png" });
  // Enter username GOOD
  await page.click("#user_id");
  await page.keyboard.type(clientInfo.user_name);
  await page.screenshot({ path: "./ScreenShots/ScreenShot1.png" });
  console.log("Username has been inserted");
  // Accepting Username GOOD
  await page.click(".andes-button--large");
  await page.screenshot({ path: "./ScreenShots/ScreenShot2.png" });
  await page.keyboard.press("Accept"); //Enter Key
  await page.screenshot({ path: "./ScreenShots/ScreenShot3.png" });
  //Delay 1.5 Seconds
  await page.waitForTimeout(1000);
  // Enter Password GOOD
  await page.click("#password");
  await page.keyboard.type(clientInfo.password);
  await page.screenshot({ path: "./ScreenShots/ScreenShot4.png" });
  console.log("Password has been inserted");
  // Accepting Password GOOD
  await page.click("#action-complete");
  await page.screenshot({ path: "./ScreenShots/ScreenShot5.png" });
  await page.keyboard.press("Accept"); //Enter Key
  await page.screenshot({ path: "./ScreenShots/ScreenShot6.png" });
  //Delay 4 Seconds
  await page.waitForNavigation();
  await page.waitForTimeout(1000);
  //URL Fetch GOOD
  const url1 = await page.url();
  console.log("Page URL : " + url1);
  //Store URL
  clientInfo.Step1_Url = url1;
  //NOTE New Section
  await page.waitForTimeout(10000);
  const url2 = await page.url();
  console.log("Page URL : " + url2);
  await browser.close();
})();

在 //NOTE New Section 區域中,我正在等待獲得實際的解析重定向,但我得到的是chrome-error://chromewebdata/與預期的 url+code。 想法?

問題在於redirect_uri。 我將它設置為 localhost ,這似乎導致 puppeteer 無法檢索它。 將其更改為 heroku 后,它立即工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM