If you test using PHP and Codeception you may have run into the issue of how to start Selenium before your tests. Some people use a wait or sleep command but here is a tip to automatically start Selenium during tests and wait for it to start:
Configure acceptance.suite.yml
With the RunProcess extension with can add a special timeout wait command to wait for Selenium to start before starting our tests:
actor: AcceptanceTester
extensions:
enabled:
- Codeception\Extension\RunFailed
# the lines will run the selenium server before tests start and wait for the process to answer on port 4444
- Codeception\Extension\RunProcess:
- java -Dwebdriver.gecko.driver=./geckodriver -jar selenium-server.jar
- 'timeout 300 bash -c ''while [[ "$(curl -s -o /dev/null -w ''''%{http_code}'''' localhost:4444)" != ''200'' ]]; do sleep 5; done'' || false'
modules:
enabled:
- WebDriver:
url: "https://playground.mailslurp.com"
browser: firefox
- \Helper\Acceptance
step_decorators: ~
That's it!
More information
For more tips on testing with Codeception see the PHP SMTP guide.