Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

302
Visualizações
En node.js, ¿cómo escribir datos binarios de búsqueda en un archivo?

Digamos que quiero guardar una imagen en el disco.

 var path = require('path'); var webdriver = require("selenium-webdriver"); var chrome = require('selenium-webdriver/chrome'); var By = webdriver.By; var until = webdriver.until const fs = require("fs"); var o = new chrome.Options(); o.addArguments("--disable-web-security"); var browser = new webdriver.Builder().forBrowser('chrome').setChromeOptions(o).build(); fetch("https://upload.wikimedia.org/wikipedia/commons/9/9d/Blue_Flower.png");

Esto no funciona, la búsqueda no está definida.

Luego intenté agregar fetch en browser.executeScript

 var promise1 = browser.executeScript(`return fetch("https://upload.wikimedia.org/wikipedia/commons/9/9d/Blue_Flower.png");`) promise1.then((x) => x.arrayBuffer()).then((buffer) => fs.writeFile("flower.png", buffer, () => console.log("done")))

esto no funciona Resulta que cuando executeScript devuelve un objeto, todas las funciones del objeto se reemplazan con {}.

Luego intenté devolver el búfer de ejecutarScript.

 var promise1 = browser.executeScript(`return fetch("https://upload.wikimedia.org/wikipedia/commons/9/9d/Blue_Flower.png").then((x) => x.arrayBuffer());`) promise1.then((buffer) => fs.writeFile("flower.png", buffer, () => console.log("done")))

Todavía no funciona. Resulta que el búfer se convierte en {};

¿Hay alguna forma en que pueda acceder al arrayBuffer sin que se convierta en {} después de que salga de executeScript?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

const res = await fetch(url); const fileWriteStream = fs.createWriteStream('/directory/path.ext'); res.body.pipe(fileWriteStream);
about 4 years ago · Juan Pablo Isaza Relatório

0

Me las arreglé para hacerlo usando base64. Usé el código de esta respuesta :

 var promise1 = browser.executeScript(`return fetch("https://upload.wikimedia.org/wikipedia/commons/9/9d/Blue_Flower.png").then((x) => x.arrayBuffer()).then(function(buffer){ var blob = new Blob([buffer]) var reader = new FileReader(); reader.readAsDataURL(blob); return reader }).then(function(reader){ return new Promise(function(x, y){ this.addEventListener("loadend", function(){ x(this); }.bind(this)) }.bind(reader)); }).then(function(reader){ return reader.result.slice(reader.result.indexOf(",")+1); }) `) promise1.then(function(b64data){ let buff = Buffer.from(b64data, 'base64'); fs.writeFileSync("flower.png", buff); console.log("done"); })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda