Published on 4 min read

Chrome DevTools - Console Tips and Tricks

Follow me:
Useful Chrome DevTools Console tips - selecting elements, $_ and $0-$4, copy(), monitor(), monitorEvents(), timing, styled output and more.

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 Console as a panel
Opening the Console as a panel

To open the Console as a drawer - press on Esc while DevTools is open (it toggles the drawer):

Opening the Console as a drawer
Opening the Console as a drawer

Selecting Elements

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

Selecting all the rendered buttons on the page
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
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 have the ability to access the last five inspected 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 to $4 return the previously selected ones, in order:

Retrieving the last five DOM elements
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
Copying an object to the clipboard as a string

Note: In previous versions of DevTools, we had to use 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
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
Tracking invocations of a function

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

Monitoring Events

We can track the 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
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

We can measure how long an action takes by calling console.time(label) before it and console.timeEnd(label) after it:

Measuring time for an action
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
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
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
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:

You’re welcome to share:

Enjoyed this post?

I’d love for you to follow me and join my newsletter.

Comments are powered by DisqusDetails

Loading comments activates Disqus, which collects information as a third-party service.

The site owner has no access to or control over the information collected by Disqus.