Selenium/How-to/Debug with browser.debug()

From mediawiki.org

Environments[edit]

This tip works if you're targeting:

Make the browser visible[edit]

To speed up the debugging, you will probably want to run make the browser visible. See Selenium/How-to/Make the browser visible.

Environment variables[edit]

By default, Mocha will abort the test suite if it takes more than 60 seconds. That is usually plenty when you're just running tests, but it's usually not enough when you're debugging. To extend the timeout to 60 minutes, set DEBUG environment variable.

Either run this manually from the terminal or, to make it easier for next time, set them from shell configuration file (~/.bash_profile, ~/.zshrc...) which means the variables are always available from any terminal session:

export DEBUG=true

If you prefer, you can create an .env file instead (in MediaWiki Core folder), with this contents.

DEBUG=true

browser.debug()[edit]

Put browser.debug(); at a place you want to debug.

Run Selenium tests[edit]

To speed up the debugging, you will probably want to run only one test. See Selenium/How-to/Run a subset of a test suite. Test suite will stop when it reaches browser.debug().

npm run selenium-test

...

The execution has stopped!
You can now go into the browser or use the command line as REPL
(To exit, press ^C again or type .exit)

...

Use the browser developer tools and WebdriverIO REPL interface to debug.

Examples[edit]

For example, you can ask for browser URL.

[0-0] â€ș browser.getUrl()
'http://localhost:8080/w/index.php?hidebots=1&limit=50&days=7&enhanced=1&title=Special:RecentChanges&urlversion=2'

Or, if an element with ID pt-login is displayed.

[0-0] â€ș $('#pt-login').isDisplayed()
true

More information[edit]