Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VSCODE: No debug adapter, can not send 'variables'"

I'm getting started with pupeteer and node and using vscode in win 10. I'm trying to log into a site and scrape a table. So far I have:

(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();
})();

This is mostly working. however in my console I see a list of objects but as far as I can tell no values. Heres the fiest object:

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'

What does " No debug adapter, can not send 'variables'" mean?

edit:

I updated to the latest vscode and checked that all extensions were updated. Now when I run 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 them

Any idea what this means?

like image 607
user1592380 Avatar asked May 15 '20 10:05

user1592380


People also ask

What does this mean no debugger available can not send variables?

The reason this happens is that the debugger stops after the code execution ends. Then there is no more debug adapter available to send the variables.

How do I enable debug mode in VS Code?

To bring up the Run and Debug view, select the Run and Debug icon in the Activity Bar on the side of VS Code. You can also use the keyboard shortcut Ctrl+Shift+D. The Run and Debug view displays all information related to running and debugging and has a top bar with debugging commands and configuration settings.

Where is launch json in VS Code?

The launch. json file is located in a . vscode folder in your workspace (project root folder).


3 Answers

I had this issue when trying to use the integratedConsole rather than integratedTerminal or externalTerminal as part of my Node configuration within launch.json:

Setting it back to:

"console": "integratedTerminal" 

Fixed it. Only took an hour to figure out. See docs for more information.

like image 147
Nick Avatar answered Sep 19 '22 07:09

Nick


You can also try:

"outputCapture": "std"

in your launch.json

Here is reference on Github

like image 39
Shimi Shimson Avatar answered Sep 21 '22 07:09

Shimi Shimson


The reason this happens is that the debugger stops after the code execution ends. Then there is no more debug adapter available to send the variables. What I did is add an extra line on the bottom of the code execution, and set a breakpoint on that. It isn't pretty, but it works.

like image 35
Tiamo Idzenga Avatar answered Sep 20 '22 07:09

Tiamo Idzenga