Cuando ejecuto el script, el navegador web automatizado se carga y también el sitio web que quería que se cargara, pero se apaga instantáneamente sin hacer nada más. Miré los documentos y usé el método de espera en caso de que el sitio web que estaba tratando de cargar cargara mucho AJAX pero todavía no parece estar funcionando. ¿Alguien puede explicar qué está pasando y cómo recibo este error?
Aquí está el código JavaScript:
const {Builder, By, until} = require('selenium-webdriver'); (async function helloSelenium() { let driver = await new Builder().forBrowser('safari').build(); await driver.get('https://www.google.com/?client=safari'); let ele = await driver.wait(until.elementLocated(By.id('gbqfbb'), 10000)); let b = await driver.findElement(By.id('gbqfbb')); console.log(b.getText()); await driver.quit(); })();
Y aquí está el error:
user@MacBook-Pro webscraper % node webscraper.js Promise { <pending> } /Users/user/Documents/Web/webscraper/node_modules/selenium-webdriver/lib/error.js:522 let err = new ctor(data.message) ^ NoSuchSessionError at Object.throwDecodedError (/Users/user/Documents/Web/webscraper/node_modules/selenium-webdriver/lib/error.js:522:15) at parseHttpResponse (/Users/user/Documents/Web/webscraper/node_modules/selenium-webdriver/lib/http.js:548:13) at Executor.execute (/Users/user/Documents/Web/webscraper/node_modules/selenium-webdriver/lib/http.js:474:28) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Driver.execute (/Users/user/Documents/Web/webscraper/node_modules/selenium-webdriver/lib/webdriver.js:735:17) { remoteStacktrace: '' }
Intenta cambiar lo siguiente
De
let ele = await driver.wait(until.elementLocated(By.id('gbqfbb'), 10000));
a
let ele = await driver.wait(until.elementLocated(By.id('gbqfbb')), 10000);
También es importante tener en cuenta que si este método arroja una excepción (excepción de tiempo de espera), también debe intentar atraparla.