Chrome DevTools - Things You Should Know about Console

November 4, 2017 3 min read Chrome DevTools

A bulk of useful tips and tricks regarding the Chrome DevTools Console.

Preface

The Chrome DevTools includes a built-in tool for interacting with the JavaScript engine - which is the Console. In order to master the Console - we should know its supported capabilities as much as possible.

Accordingly, we’re going to reveal several tips regarding the Console.

Opening the Console

To open the Console as a panel - press on CTRL+SHIFT+J (Windows/Linux) or CMD + OPT + J (Mac):

Opening the Chrome DevTools Console as a panel using shortcuts

Opening the Console as a panel

To open the Console as a drawer - press on CTRL + ` (Backtick):

Opening the Chrome DevTools Console as a drawer using shortcuts

Opening the Console as a drawer

Selecting an Elements

We can execute querySelectorAll for selecting all elements by a selector using $$(selector):

Selecting all the rendered buttons on the page using Chrome DevTools Console

Selecting all the rendered buttons on the page

Note: If we want to execute querySelector, we should use $(selector).

Last Evaluated Expression

To access the last evaluated expression, we can use $_:

Retrieving the last evaluated expression using Chrome DevTools Console

Retrieving the last evaluated expression

Note: We can apply the appropriate methods on that expression, for instance - if it’s a DOM element, we’re able to invoke innerHTML and print the result into the Console.

Last Five Elements

In case that we traverse the DOM manually, we’ve the ability to access the last five watched elements. In order to do that, we can use the commands: $0, $1, $2, $3 and $4. $0 returns the current selected element whereas $1-$4 return the last historical elements respectively:

Retrieving the last five DOM elements using Chrome DevTools Console

Retrieving the last five DOM elements

Copy to Clipboard

Sometimes we need to copy the string representation of an object to the clipboard:

Copying an object to the clipboard as a string using Chrome DevTools Console

Copying an object to the clipboard as a string

Note: In previous versions of DevTools, we should have used copy(JSON.stringify(object)) in order to convert the JSON to a string. However, it isn’t needed anymore.

Registered Event Listeners

Printing the registered event listeners for an object is pretty easy because of getEventListeners(object):

Retrieving all the registered event listeners of an object using Chrome DevTools Console

Retrieving all the registered event listeners of an object

Note: Assuming there is a button with click event in the page.

Monitoring a Function

We can track invocations for a function with the passed arguments using monitor(function):

Tracking invocations of a function using Chrome DevTools Console

Tracking invocations of a function

Note: To stop the tracking - use unmonitor(function).

Monitoring an Events

We can track an events of an object using monitorEvents(object, [events]). The first argument is the actual specified object whereas the second is the specified array of events (or a single event).

Let’s listen and simulate clicks on the Window object:

Tracking invocations of registered events for an object using Chrome DevTools Console

Tracking invocations of registered events for an object

A few points:

  • To stop the tracking - use unmonitorEvents(object, [events]).
  • We could use unmonitorEvents(object) to eliminate the tracking for all events.

Measuring Time

Measuring time for a dedicated action could be performed simply when invoking console.time(text) before the action and console.timeEnd(text) thereafter:

Measuring time for an action using Chrome DevTools Console

Measuring time for an action

Styling Console Output

Applying CSS on the output text is performed using the %c string, which indicates the beginning of the styled text. The second parameter is a string of the specified CSS properties.

Here’s an example:

Styling text with CSS properties using Chrome DevTools Console

Styling text with CSS properties

Hiding Network Messages

Network messages may appear in the Console in case of an error of a resource, blocking scripts and so on. From time to time, we don’t care about these messages and we wish to hide them:

Hiding irrelevant network messages using Chrome DevTools Console

Hiding irrelevant network messages

Editing an Element

We can edit the content of an element directly through the Console:

Editing the content of a DOM element using Chrome DevTools Console

Editing the content of a DOM element

Note: The element could be edited as HTML as well.

References

Check out the following links for more information: