Page MenuHomePhabricator

Attempt to run selenium tests locally
Closed, ResolvedPublic

Description

I'm trying to run selenium tests locally so as to complete the micro-task here, but all the tests failed which isn't supposed to be. I configured MediaWiki Docker and followed the guidelines stipulated here. I noticed the test are running offline on pages served on localhost:8080. Do I need to manually start the server so the test passes?

I also get the error above that my MW_DOCKER_UID and MW_DOCKER_GID isn't set and defaults to blank when I run docker-compose up -d. How do I set my group ID and user ID, I used the export command on the command line but it does not seem to work.

http://localhost:8080 gives the following error

Event Timeline

@Gbahdeyboh could you please copy/paste your terminal output? (Not taking a screenshot, but copy/paste text.) Please provide as much relevant information as possible, which commands have you run, what output did it generate....

I followed the steps here and setup docker using the steps here.

The first thing I did was create a docker-compose.override.yml file in the repository directory, after which I ran the commands export MW_DOCKER_UID=$(id -u) and export MW_DOCKER_GID=$(id -g). There was no output after running the export commands,

I then ran docker-compose up -d and got the message Recreating core_mediawiki_1 ... done

The below codes were fine before but seem to be generating some sort of errors, I'm not sure what I did to change that
I installed media wiki in the environment.

docker-compose exec MediaWiki composer update

That prints the below error

Cannot create cache directory /var/www/html/cache/composer/repo/https---packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /var/www/html/cache/composer/files/, or directory is not writable. Proceeding without cache
> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update

                                                                               
  [ErrorException]                                                             
  file_put_contents(/var/www/html/vendor/composer/installed.json): failed to   
  open stream: Permission denied                                               
                                                                               

update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [--with-dependencies] [--with-all-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-i|--interactive] [--root-reqs] [--] [<packages>]...

Then ran npm ci which installed a couple of dependencies.

I set the environment variables

export MW_SERVER=http://localhost:8080
export MW_SCRIPT_PATH=/
export MEDIAWIKI_USER=Admin
export MEDIAWIKI_PASSWORD=dockerpass

And finally ran npm run selenium which gives an error that chrome driver isn't found.
I've tried adding chrome driver to PATH using the command export PATH=$PATH:/home/gbahdeyboh/Desktop/programs/core/chromedriver =but still got the same error when i ran npm run selenium

Hello @zeljkofilipin .

I've been able to get chrome drivers working properly again, the problem I seem to have now is with docker.

When I try to install the composer dependencies in docker using the command docker-compose exec MediaWiki composer update.

I get the error

Cannot create cache directory /var/www/html/cache/composer/repo/https---packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /var/www/html/cache/composer/files/, or directory is not writable. Proceeding without cache

I'm having issues making the directory readable in the container, how can I do that? Looked up a few stuffs on google but it does not seem to work

I don't have much experience with docker so pardon me if my questions are a bit noobish.

@Gbahdeyboh you are running Linux on your desktop, right? When you run export MW_DOCKER_UID=$(id -u) that only persists for as long as you have your terminal tab open. If you run echo $MW_DOCKER_UID in your terminal my guess is that you won't see any output. If you want it to persist across sessions, you need to put it in your ~/.bashrc file.

You can start over by doing rm -rf vendor, rm -rf cache and rm LocalSettings.php, then making sure that $MW_DOCKER_UID and $MW_DOCKER_GID are set before starting with the install instructions again.

We are working on making this easier in T246111: Command-line wrapper for interacting with core's docker-compose stack

@Gbahdeyboh had faced that initially. Try following the restart installation instructions given on the guide to set up MediaWiki locally. Additionally you can try to set these variables in your ~/.bashrc

Thanks a lot @kostajh, It went through now. However, while I was installing the composer packages this error got logged

  - Installing wikimedia/langconv (0.3.5): Downloading (100%)         
    Failed to execute unzip -qq  '/var/www/html/vendor/wikimedia/langconv/23af980b45f12e3ca171e9f74b1ad654' -d '/var/www/html/vendor/composer/bc5fcd92'

[/var/www/html/vendor/wikimedia/langconv/23af980b45f12e3ca171e9f74b1ad654]
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of /var/www/html/vendor/wikimedia/langconv/23af980b45f12e3ca171e9f74b1ad654 or
        /var/www/html/vendor/wikimedia/langconv/23af980b45f12e3ca171e9f74b1ad654.zip, and cannot find /var/www/html/vendor/wikimedia/langconv/23af980b45f12e3ca171e9f74b1ad654.ZIP, period.

    The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)
    Unzip with unzip command failed, falling back to ZipArchive class

    Invalid zip file, retrying...
  - Installing wikimedia/langconv (0.3.5): Downloading (connecting...)

And it seems to just keep connecting without actually moving forward, after a while, it installed a few more dependencies and I got the following logs.

guzzlehttp/psr7 suggests installing zendframework/zend-httphandlerrunner (Emit PSR-7 responses)
pear/net_smtp suggests installing pear/auth_sasl (Install optionally via your project's composer.json)
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
giorgiosironi/eris suggests installing icomefromthenet/reverse-regex (v0.0.6.3 for the regex() Generator)
symfony/service-contracts suggests installing symfony/service-implementation ()
symfony/console suggests installing symfony/event-dispatcher ()
symfony/console suggests installing symfony/lock ()
symfony/console suggests installing symfony/process ()
phan/phan suggests installing ext-ast (Needed for parsing ASTs (unless --use-fallback-parser is used). 1.0.1+ is needed.)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit suggests installing phpunit/php-invoker (^2.0.0)
phpunit/phpunit suggests installing ext-soap (*)

After which it prints the error

Package jakub-onderka/php-parallel-lint is abandoned, you should avoid using it. Use php-parallel-lint/php-parallel-lint instead.

                                                                               
  [ErrorException]                                                             
  file_put_contents(./composer.lock): failed to open stream: Permission denie  
  d                                                                            
                                                                               

update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [--with-dependencies] [--with-all-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-i|--interactive] [--root-reqs] [--] [<packages>]...

I tried proceeding to the next installation step to Install MediaWiki in the environment, but got the error

Error: You are missing some external dependencies. 
MediaWiki also has some external dependencies that need to be installed
via composer or from a separate git repo. Please see
https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries
for help on installing the required components.

@Gbahdeyboh sounds like a network error, and you might just need to try running the command again a few times. Also, you should run rm composer.lock, the file permissions on that are incorrect from your earlier install attempt before MW_DOCKER_UID was set.

Thanks a lot @kostajh.

Some good news...I've been able to set it up.

Re-cloned the repo and started all over again and all installation went on fine. I'm now able to run the site locally at localhost.

But now, the tests are failing, only 1 out of the six tests passes. I've read the logs and there seems to be a different error for each test.

0) Test 1

 Error in ""before each" hook"
spawn ffmpeg ENOENT
[0-0] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/BlankPage-should-have-its-title-%40daily.png 

[0-0] 2020-03-24T21:32:09.770Z ERROR webdriver: Request failed due to Error: invalid session id
  (Driver info: chromedriver=73.0.3683.20 (8e2b610813e167eee3619ac4ce6e42e3ec622017),platform=Linux 4.15.0-13-generic x86_64)
    at getErrorFromResponseBody (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/webdriver/build/utils.js:175:10)
    at Request._callback (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/webdriver/build/request.js:110:64)
    at Request.self.callback (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/request/request.js:185:22)
    at Request.emit (events.js:210:5)
    at Request.EventEmitter.emit (domain.js:476:20)
    at Request.<anonymous> (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at Request.EventEmitter.emit (domain.js:476:20)
    at IncomingMessage.<anonymous> (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
[0-0] (node:15661) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'currentRetry' of undefined
    at /home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runner.js:656:28
    at done (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runnable.js:334:5)
    at /home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runnable.js:398:11
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
[0-0] (node:15661) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:15661) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  1. Test 1
[0-1] Error in ""before each" hook"
spawn ffmpeg ENOENT
  1. Test 2 - Passed
  2. Test 3
Error in ""before each" hook"
spawn ffmpeg ENOENT
  1. Test 4
 Error in ""before each" hook"
spawn ffmpeg ENOENT
[0-4] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Special%3AWatchlist-should-show-page-with-new-edit.png 

[0-4] 2020-03-24T21:32:31.609Z ERROR webdriver: Request failed due to Error: invalid session id
  (Driver info: chromedriver=73.0.3683.20 (8e2b610813e167eee3619ac4ce6e42e3ec622017),platform=Linux 4.15.0-13-generic x86_64)
    at getErrorFromResponseBody (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/webdriver/build/utils.js:175:10)
    at Request._callback (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/webdriver/build/request.js:110:64)
    at Request.self.callback (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/request/request.js:185:22)
    at Request.emit (events.js:210:5)
    at Request.EventEmitter.emit (domain.js:476:20)
    at Request.<anonymous> (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at Request.EventEmitter.emit (domain.js:476:20)
    at IncomingMessage.<anonymous> (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at IncomingMessage.EventEmitter.emit (domain.js:476:20)
    at endReadableNT (_stream_readable.js:1183:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
[0-4] Error in "Special:Watchlist "before each" hook for "should show page with new edit""
invalid session id
  (Driver info: chromedriver=73.0.3683.20 (8e2b610813e167eee3619ac4ce6e42e3ec622017),platform=Linux 4.15.0-13-generic x86_64)
[0-4] (node:16641) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'fail' of undefined
    at DotReporter.<anonymous> (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/@wdio/reporter/build/index.js:110:16)
    at DotReporter.emit (events.js:210:5)
    at DotReporter.EventEmitter.emit (domain.js:476:20)
    at /home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/@wdio/runner/build/reporter.js:38:49
    at Array.forEach (<anonymous>)
    at BaseReporter.emit (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/@wdio/runner/build/reporter.js:38:20)
    at MochaAdapter.emit (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/@wdio/mocha-framework/build/index.js:211:19)
    at Runner.emit (events.js:215:7)
    at Runner.EventEmitter.emit (domain.js:476:20)
    at Runner.fail (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runner.js:304:8)
    at Runner.failHook (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runner.js:343:8)
    at /home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runner.js:412:16
    at done (/home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runnable.js:334:5)
    at /home/gbahdeyboh/Desktop/programs/mediawiki/node_modules/mocha/lib/runnable.js:398:11
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
[0-4] (node:16641) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:16641) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  1. Test 5
Error in ""before each" hook"
spawn ffmpeg ENOENT

@zeljkofilipin

Some of the errors I'm having is exactly the one stated here which was from a year or two ago.

So I installed ffmpeg node package and three of the tests now passes, the remaining 3 which doesn't pass have the same error Can't call getText on element with selector "#firstHeading" because element wasn't found. It seems the tests isn't waiting for the whole DOM to be rendered before executing. I'm not exactly sure.

@Gbahdeyboh It's hard to debug remotely. 😁 Please copy/paste the entire terminal output, starting with exporting environment variables (as documented at https://www.mediawiki.org/wiki/Selenium/Getting_Started/Run_tests_targeting_MediaWiki-Docker#Environment_variables).

Are there any screenshots or videos in tests/selenium/log? If so, please upload them here.

@zeljkofilipin Thanks.

After exporting the environment variables, nothing is logged. I echoed them and confirmed that they've been exported.

Here's the complete log after running npm run selenium

> @ selenium /home/gbahdeyboh/Desktop/programs/mediawiki
> wdio ./tests/selenium/wdio.conf.js


Execution of 6 spec files started at 2020-03-25T12:36:28.700Z

Starting ChromeDriver 73.0.3683.20 (8e2b610813e167eee3619ac4ce6e42e3ec622017) on port 4444
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[0-0] RUNNING in chrome - /tests/selenium/wdio-mediawiki/specs/BlankPage.js
[0-0] ffmpeg stderr: Unknown input format: 'x11grab'
[0-0] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/BlankPage-should-have-its-title-%40daily.mp4 

[0-0] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/BlankPage-should-have-its-title-%40daily.mp4
[0-0] Error in "BlankPage should have its title @daily"
Can't call getText on element with selector "#firstHeading" because element wasn't found
[0-0] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/BlankPage-should-have-its-title-%40daily.png 

[0-0] FAILED in chrome - /tests/selenium/wdio-mediawiki/specs/BlankPage.js
[0-1] RUNNING in chrome - /tests/selenium/specs/page.js
[0-1] [13:37:33] [S] [MWBOT] Login successful: Admin@http://localhost:8080/
[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-previewable.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-previewable.mp4
[0-1] Error in "Page should be previewable"
Can't call getText on element with selector "#firstHeading" because element wasn't found
[0-1] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-previewable.png 

[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-creatable.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-creatable.mp4
[0-1] Error in "Page should be creatable"
Can't call getText on element with selector "#firstHeading" because element wasn't found
[0-1] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-creatable.png 

[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-re-creatable.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-re-creatable.mp4
[0-1] Error in "Page should be re-creatable"
Can't call getText on element with selector "#firstHeading" because element wasn't found
[0-1] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-re-creatable.png 

[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-editable-%40daily.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-editable-%40daily.mp4
[0-1] Error in "Page should be editable @daily"
Can't call getText on element with selector "#firstHeading" because element wasn't found
[0-1] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-editable-%40daily.png 

[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-have-history-%40daily.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-have-history-%40daily.mp4
[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-deletable.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-deletable.mp4
[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-restorable.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-restorable.mp4
[0-1] ffmpeg stderr: Unknown input format: 'x11grab'
[0-1] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-undoable.mp4 

[0-1] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Page-should-be-undoable.mp4
[0-1] FAILED in chrome - /tests/selenium/specs/page.js
[0-2] RUNNING in chrome - /tests/selenium/specs/rollback.js
[0-2] PASSED in chrome - /tests/selenium/specs/rollback.js
[0-3] RUNNING in chrome - /tests/selenium/specs/specialrecentchanges.js
[0-3] ffmpeg stderr: Unknown input format: 'x11grab'
[0-3] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Special%3ARecentChanges-shows-page-creation.mp4 

[0-3] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Special%3ARecentChanges-shows-page-creation.mp4
[0-3] [13:38:37] [S] [MWBOT] Login successful: Admin@http://localhost:8080/
[0-3] PASSED in chrome - /tests/selenium/specs/specialrecentchanges.js
[0-4] RUNNING in chrome - /tests/selenium/specs/specialwatchlist.js
[0-4] [13:38:45] [S] [MWBOT] Login successful: Admin@http://localhost:8080/
[0-4] ffmpeg stderr: Unknown input format: 'x11grab'
[0-4] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Special%3AWatchlist-should-show-page-with-new-edit.mp4 

	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/Special%3AWatchlist-should-show-page-with-new-edit.mp4
[0-4] [13:38:49] [S] [MWBOT] Login successful: Admin@http://localhost:8080/
[0-4] [13:38:51] [S] [MWBOT] Login successful: Admin@http://localhost:8080/
[0-4] PASSED in chrome - /tests/selenium/specs/specialwatchlist.js
[0-5] RUNNING in chrome - /tests/selenium/specs/user.js
[0-5] ffmpeg stderr: Unknown input format: 'x11grab'
[0-5] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/User-should-be-able-to-create-account.mp4 

[0-5] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/User-should-be-able-to-create-account.mp4
[0-5] Error in "User should be able to create account"
Can't call getText on element with selector "#firstHeading" because element wasn't found
[0-5] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/User-should-be-able-to-create-account.png 

[0-5] ffmpeg stderr: Unknown input format: 'x11grab'
[0-5] 
	Video location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/User-should-be-able-to-log-in-%40daily.mp4 

[0-5] 	ffmpeg exited with code 1 /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/User-should-be-able-to-log-in-%40daily.mp4
[0-5] [13:39:08] [S] [MWBOT] Login successful: Admin@http://localhost:8080/
[0-5] Error in "User should be able to log in @daily"
Can't call getText on element with selector "#pt-userpage" because element wasn't found
[0-5] 
	Screenshot location: /home/gbahdeyboh/Desktop/programs/mediawiki/tests/selenium/log/User-should-be-able-to-log-in-%40daily.png 

[0-5] FAILED in chrome - /tests/selenium/specs/user.js

 "dot" Reporter:
FFFFF............FF.

Spec Files:	 3 passed, 3 failed, 6 total (100% completed) in 00:02:47 

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ selenium: `wdio ./tests/selenium/wdio.conf.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ selenium script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/gbahdeyboh/.npm/_logs/2020-03-25T12_39_16_067Z-debug.log
gbahdeyboh@Gbahdeyboh:~/Desktop/programs/mediawiki$

There are pictures in tests/selenium/log.

Wow! Thanks a lot, @kostajh and @zeljkofilipin. I really appreciate your help.

All 6 tests now pass as expected.