Packages
testcontainers
0.9.1
2.3.1
2.3.0
2.2.0
2.1.0
2.1.0-rc1
2.0.0
2.0.0-rc3
2.0.0-rc2
2.0.0-rc
1.14.1
1.14.0
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.12.0
1.11.8
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.1
1.3.0
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-beta.1
1.0.0-beta
0.9.3
0.9.2
0.9.1
0.9.0
Testcontainers is an Elixir library that supports ExUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
Current section
Files
Jump to
Current section
Files
lib/container/selenium_container.ex
defmodule Testcontainers.Container.SeleniumContainer do
@moduledoc """
Work in progress. Not stable for use yet.
Can use https://github.com/stuart/elixir-webdriver for client in tests
"""
alias Testcontainers.Container
alias Testcontainers.WaitStrategy.PortWaitStrategy
alias Testcontainers.WaitStrategy.LogWaitStrategy
@default_image "selenium/standalone-chrome:latest"
@log_regex ~r/.*(RemoteWebDriver instances should connect to|Selenium Server is up and running|Started Selenium Standalone).*\n/
@wait_strategies [
PortWaitStrategy.new("127.0.0.1", 4400, 15_000, 1000),
PortWaitStrategy.new("127.0.0.1", 7900, 15_000, 1000),
LogWaitStrategy.new(@log_regex, 15_000, 1000)
]
def new(options \\ []) do
image = Keyword.get(options, :image, @default_image)
Container.new(image)
|> Container.with_exposed_ports([4400, 7900])
|> Container.with_waiting_strategies(@wait_strategies)
end
end