Interactive Mode
==================================================
With Golem the execution of a test can be paused at any point to start an interactive console with all the actions available.
This is useful for debugging tests.
## interactive_mode Action
To start the interactive console at any point of a test just add the **interactive_mode** action. Example:
**test.py**
```python
def test(data):
navigate('http://wikipedia.org/')
interactive_mode()
click(page.button)
take_screenshot('final screenshot')
```
When the test reaches the second step, the interactive console is going to start:
![interactive-console](_static/img/interactive-console.png "Interactive Console")
When the interactive console is terminated, the test will resume the execution from that point on.
Note
If the test is not run with the -i flag, the interactive_mode action will be ignored
## Quick Interactive Mode
It is possible to start a quick interactive shell by not providing a project and test to the run command:
```
golem run -i
```
This will start an interactive console with a clean slate.
```text
>golem run -i
Entering interactive mode
type exit() to stop
type help() for more info
>>> navigate('https://en.wikipedia.org')
12:47:54 INFO Navigate to: 'https://en.wikipedia.org'
>>> send_keys('#searchInput', 'automation')
12:48:58 INFO Write 'automation' in element #searchInput
>>> click('#searchButton')
12:49:18 INFO Click #searchButton
>>> get_browser().title
'Automation - Wikipedia'
>>> assert_title_contains('Automation')
12:49:50 INFO Assert page title contains 'Automation'
```
## Python Debugger
It is possible to add a Python debugger breakpoint (pdb.set_trace()) using the **set_trace** action.
As with the **interactive_mode**, the test must be run with the *-i* flag for this action to take effect.
More info about pdb [here](https://docs.python.org/3/library/pdb.html).
Example:
**test.py**
```python
def test(data):
navigate('https://en.wikipedia.org')
set_trace()
```
```text
>golem run project test -i
12:57:11 INFO Test execution started: test
12:57:11 INFO Browser: chrome
12:57:11 INFO Navigate to: 'https://en.wikipedia.org'
--Return--
> c:\[...]\golem\actions.py(1578)set_trace()->None
-> pdb.set_trace()
(Pdb)
```