Add the following code to your project's shard.yml under:
dependencies
to use in production
- OR -
development_dependencies
to use in development
Selenium client for interacting with web pages for browser automation.
Add the dependency to your shard.yml
:
dependencies:
selenium:
github: matthewmcgarvey/selenium.cr
Run shards install
require "selenium"
driver = Selenium::Driver.for(:chrome, base_url: "http://localhost:9515")
Available drivers:
Rather than running chromedriver yourself, you can give the driver a service which will run the process for you.
driver = Selenium::Driver.for(:chrome, service: Service.chrome(driver_path: "~/.webdrivers/chromedriver"))
You must call driver.stop
when you are finished or it will leave the service running.
Consider using webdrivers.cr for automatically installing drivers and managing the driver path for you.
capabilities = Selenium::Chrome::Capabilities.new
capabilities.args(["no-sandbox", "headless", "disable-gpu"])
driver.create_session(capabilities)
Use the appropriate Capabilities
class for whichever browser you choose.
Run crystal spec
to run the tests. It will run the tests in headless mode.
To run the tests with chrome headlessly:
SELENIUM_BROWSER=chrome crystal spec --tag "~chrome"
To run the tests with firefox headlessly:
SELENIUM_BROWSER=firefox crystal spec --tag "~firefox"
The tag skips any specs that are know to break with those browsers.
Running just crystal spec
will use chrome.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)