Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

115
Views
Tipo de titiritero en el indicador

Hola, estoy tratando de iniciar sesión en algo como esto;
Los campos de entrada se pueden traducir a nombre de username y password y los botones son login y cancel .


Estoy tratando de escribir en estos campos y presionar el botón de inicio de login (azul)

Intenté await page.authenticate({ username: ... , password: ... })
También probé page.on('dialog', async (dialog) => .......) pero ninguno de los dos funciona, simplemente permanece así.

O cómo puedo seleccionar esos campos, no sé si es posible ya que su función está basada en javascript.

ingrese la descripción de la imagen aquí

y aquí está mi código;

 import express from 'express'; import puppeteer from 'puppeteer'; import userAgent from 'user-agents'; const app = express(); const screenshot = 'github3.png'; app.get('/', async (req, res) => { const browser = await puppeteer.launch({ headless: false, executablePath: `C:/Program Files (x86)/Google/Chrome/Application/chrome.exe`, defaultViewport: null, args: ['--start-maximized'], }); const page = await browser.newPage(); await page.setUserAgent(userAgent.toString()); page.setDefaultNavigationTimeout(0); await page.goto('myUrl...', { waitUntil: 'load', timeout: 0, }); await page.click('#krbSubmit'); // AFTER THIS CLICK THE PROMPT OPENS ON THE NEXT PAGE // await browser.close(); res.send('hi'); }); app.listen('5000', console.log('server listening'));
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

He colocado la página de await page.authenticate({...}) en el lugar equivocado. Ahora, puede proceder.
Aquí está el código final;

 import express from 'express'; import puppeteer from 'puppeteer'; import userAgent from 'user-agents'; const app = express(); const BLOCKLIST_URL = 'your_url'; const screenshot = 'github3.png'; app.get('/', async (req, res) => { const browser = await puppeteer.launch({ headless: false, executablePath: `C:/Program Files (x86)/Google/Chrome/Application/chrome.exe`, defaultViewport: null, args: ['--start-maximized'], }); const page = await browser.newPage(); await page.setUserAgent(userAgent.toString()); page.setDefaultNavigationTimeout(0); await page.authenticate({ username: 'username', password: 'password' }); await page.goto(BLOCKLIST_URL, { waitUntil: 'load', timeout: 0, }); await page.click('#krbSubmit'); // await browser.close(); res.send('hi'); }); app.listen('5000', console.log('server listening'));
about 4 years ago · Juan Pablo Isaza Report

0

Puede usar la interceptación de solicitudes para inyectar las credenciales en la solicitud que hace el navegador después de hacer clic #krbSubmit , más precisamente la solicitud que muestra la ventana emergente de inicio de sesión de su captura de pantalla:

 await page.setRequestInterception(true); page.on("request", (request) => { var url = request.url(); if (<url is a generated login URL>) request.continue({ url: url.replace("://", "://username:password@"), headers: { authorization: "Basic " + Buffer.from("username:password", "base64") } }); else request.continue(); }); await page.goto('myUrl...', { waitUntil: 'load', timeout: 0, }); await page.click('#krbSubmit');

Uno de los dos métodos de inyección (en la URL o en la Authorization: Basic ) debería ser suficiente.

Esto supone que puede detectar la URL de inicio de sesión generada por un determinado patrón. Si eso falla, podría considerar otros métodos de detección, como el conteo de solicitudes: el primero siempre va a una URL fija, el segundo a la URL de inicio de sesión.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!