Estoy comenzando con titiritero y nodo y usando vscode en win 10. Estoy tratando de iniciar sesión en un sitio y raspar una tabla. Hasta ahora tengo:
(async () => { const browser = await puppeteer.launch({ headless: false, }); var page = await browser.newPage(); await page.goto('thesite.com/login/'); await page.click(USERNAME_SELECTOR); await page.keyboard.type(CREDS.username); await page.click(PASSWORD_SELECTOR); await page.keyboard.type(CREDS.password); await page.click(BUTTON_SELECTOR); await page.waitForNavigation(); const TABLE_ROW_SELECTOR = '.gv-container.gv-container-133 > table > tbody'; await page.waitForSelector(TABLE_ROW_SELECTOR); await page.waitForSelector(TABLE_ROW_SELECTOR); await page.screenshot({ path: 'example.png' }); const data = await page.evaluate(SELECTOR => document.querySelectorAll(SELECTOR), TABLE_ROW_SELECTOR); await browser.close(); })();Esto funciona principalmente. sin embargo, en mi consola veo una lista de objetos pero, por lo que puedo decir, no hay valores. Aquí está el objeto fiest:
0:Object {} __proto__:Object {constructor: , __defineGetter__: , __defineSetter__: , …} __defineGetter__:function __defineGetter__() { … } __defineSetter__:function __defineSetter__() { … } __lookupGetter__:function __lookupGetter__() { … } __lookupSetter__:function __lookupSetter__() { … } constructor:function Object() { … } hasOwnProperty:function hasOwnProperty() { … } No debug adapter, can not send 'variables' isPrototypeOf:function isPrototypeOf() { … } No debug adapter, can not send 'variables'¿Qué significa "No hay adaptador de depuración, no se pueden enviar 'variables'"?
editar:
Actualicé al último vscode y verifiqué que todas las extensiones estuvieran actualizadas. Ahora, cuando ejecuto LAUNCH PROGRAM
E:\nodejs\node.exe --inspect-brk=27108 index.js Debugger listening on ws://127.0.0.1:27108/e5928c71-370c- 4111-9ec3-77bb2cd85075 For help, see: https://nodejs.org/en/docs/inspector (node:12844) ExperimentalWarning: The fs.promises API is experimental warning.js:18 Array(25) [ElementHandle, ElementHandle, ElementHandle, ElementHandle, ElementHandle, ElementHandle, ElementHandle, ElementHandle, …] index.js:64 length:25 __proto__:Array(0) [, …] concat:function concat() { … } [[Scopes]]:Scopes[0] arguments:TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to themAlguna idea de lo que esto significa?
La razón por la que esto sucede es que el depurador se detiene después de que finaliza la ejecución del código. Entonces no hay más adaptador de depuración disponible para enviar las variables. Lo que hice fue agregar una línea adicional en la parte inferior de la ejecución del código y establecer un punto de interrupción en eso. No es bonito, pero funciona.
Tuve este problema al intentar usar la consola integratedConsole en lugar de la terminal integratedTerminal o la terminal externalTerminal como parte de la configuración de mi nodo dentro de launch.json :
Configurándolo de nuevo a:
"console": "integratedTerminal"Arreglado. Sólo tomó una hora para averiguarlo. Consulte los documentos para obtener más información.
También puedes probar:
"captura de salida": "estándar"
en su lanzamiento.json