# Client Diagnostics / Console

**URL:** <https://forum.inductiveautomation.com/t/client-diagnostics-console/3019>\
**Category:** Ignition\
**Created:** [June 16, 2011, 3:41pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019 "2011-06-16T15:41:19Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rockman1\_1](https://avatars.discourse-cdn.com/v4/letter/r/71e660/32.png) [@Rockman1\_1](https://forum.inductiveautomation.com/u/Rockman1_1)\
**Post date:** [June 16, 2011, 3:41pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019/1 "2011-06-16T15:41:19Z")

</div>

Is there a command or keyboard shortcut to open the client diagnostics console from a button/script? The only way i’m aware of getting to it is by enabling the client menubar and then navigating to Help\>Diagnostics.

---

<div class="post-metadata">

**Author:** ![f\_jons](https://avatars.discourse-cdn.com/v4/letter/f/9fc29f/32.png) [@f\_jons](https://forum.inductiveautomation.com/u/f_jons)\
**Post date:** [June 16, 2011, 4:13pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019/2 "2011-06-16T16:13:56Z")

</div>

This would be really handy, since for all my clients, I hide the menubar. If we could pop up the diagnostics utility from a button, or even embed a console into a page, that would be fantastic.

---

<div class="post-metadata">

**Author:** ![mlindstrom](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mlindstrom/32/30000_2.png) [@mlindstrom](https://forum.inductiveautomation.com/u/mlindstrom)\
**Post date:** [March 2, 2021, 8:14pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019/3 "2021-03-02T20:14:41Z")

</div>

This is answered in [Launch Diagnostics/Console From Client](http://forum.inductiveautomation.com/t/launch-diagnostics-console-from-client/8768/10). Use this script:

```auto
from com.inductiveautomation.factorypmi.application import FPMIApp
FPMIApp.getInstance().showFPMIDiagnostics()

```

Sorry for necrobumping, but I want to make sure I can quickly find the answer the next time I search for this and for whatever reason I found this thread with my initial searches but not the other thread.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [March 2, 2021, 9:00pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019/4 "2021-03-02T21:00:18Z")

</div>

Or, y’know, [system.gui.openDiagnostics - Ignition User Manual 8.1 - Ignition Documentation](https://docs.inductiveautomation.com/display/DOC81/system.gui.openDiagnostics)… man, what was that guy in 2018 thinking 🙂

---

<div class="post-metadata">

**Author:** ![kaushik.shah](https://avatars.discourse-cdn.com/v4/letter/k/34f0e0/32.png) [@kaushik.shah](https://forum.inductiveautomation.com/u/kaushik.shah)\
**Post date:** [October 10, 2024, 1:58pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019/5 "2024-10-10T13:58:45Z")

</div>

Is there a way (either with Robot or through script) to select console once diagnostics is open?

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 15, 2024, 7:40pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019/6 "2024-10-15T19:40:48Z")

</div>

> [@kaushik.shah](#):
>
> through script) to select console once diagnostics

```python
from java.awt import Window

# Returns the first nested component of a given class
# container = The object containing nested components to be recursively searched
# className = the __name__ of the class given as a string
def findComponentOfClass(container, className):
	for component in container.components:
		if component. __class__. __name__ == className:
			return component
		else:
			foundComponent = findComponentOfClass(component, className)
			if foundComponent:
				return foundComponent

# Programatically open a diagnostic window, find it, and set it to the console tab
system.gui.openDiagnostics()
for window in Window.getWindows():
	if window. __class__. __name__ == 'DefaultPopupWindowParent':
		diagnosticDialog = findComponentOfClass(window, 'DiagnosticsDialog')
		if diagnosticDialog:
			tabbedPane = findComponentOfClass(diagnosticDialog, 'JTabbedPane')
			tabbedPane.selectedIndex = tabbedPane.indexOfTab('Console')

```

---

<div class="post-metadata">

**Author:** ![kaushik.shah](https://avatars.discourse-cdn.com/v4/letter/k/34f0e0/32.png) [@kaushik.shah](https://forum.inductiveautomation.com/u/kaushik.shah)\
**Post date:** [October 28, 2024, 4:32pm UTC](https://forum.inductiveautomation.com/t/client-diagnostics-console/3019/7 "2024-10-28T16:32:36Z")

</div>

neat, thank you so much @justinedwards.jle
