Step 1: Apply the plugin to your Gradle build script
buildscript {
repositories {
maven { url 'https://dl.bintray.com/d10xa/maven' }
jcenter()
}
dependencies {
classpath "ru.d10xa:gradle-geb-plugin:2.0.1"
}
}
apply plugin: 'groovy'
apply plugin: 'ru.d10xa.geb'
repositories {
jcenter()
}
dependencies {
testCompile "org.codehaus.groovy:groovy-all:2.4.7"
}
// Optional
geb {
chromeDriverVersion = '2.24'
gebVersion = '0.13.1'
seleniumVersion = '2.53.1'
gebEnv = 'firefox'
}
Step 2: Create file 'src/test/resources/GebConfig.groovy'
You can change baseUrl port in this snippet.
InetAddress.getLocalHost().getHostAddress()
used for connect to localhost from docker
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.remote.DesiredCapabilities
import org.openqa.selenium.remote.RemoteWebDriver
driver = { new ChromeDriver() }
baseUrl = "http://${InetAddress.localHost.hostAddress}:8080"
environments {
chrome_docker {
driver = {
def remoteWebDriverServerUrl = new URL("http://localhost:4444/wd/hub")
new RemoteWebDriver(remoteWebDriverServerUrl, DesiredCapabilities.chrome())
}
}
firefox_docker {
driver = {
def remoteWebDriverServerUrl = new URL("http://localhost:4444/wd/hub")
new RemoteWebDriver(remoteWebDriverServerUrl, DesiredCapabilities.firefox())
}
}
}
chromeDriverVersion
https://sites.google.com/a/chromium.org/chromedriver/downloadsgebVersion
http://mvnrepository.com/artifact/org.gebish/geb-coreseleniumVersion
http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-apidockerStandaloneChromeVersion
https://hub.docker.com/r/selenium/standalone-chrome/dockerStandaloneFirefoxVersion
https://hub.docker.com/r/selenium/standalone-firefox/seleniumPort
(integer) default 4444. Selenium docker exposed port.gebEnv
(string) system propertygeb.env
value. Can be overridden by GebEnvironmentTask. Available values: chrome, firefox
Runs a test with geb.env = chrome
Depends on: downloadChromeDriver, unzipChromeDriver
Runs a test with geb.env = firefox
Runs a test with geb.env = chrome_docker. Starts selenium/standalone-chrome
Runs a test with geb.env = firefox_docker Starts selenium/standalone-firefox
If you need connection to your own selenium, you can define your own environment
import org.openqa.selenium.remote.RemoteWebDriver
baseUrl = "http://$InetAddress.localHost.hostAddress:8080"
environments {
// ... some environments here
my_custom_remote_firefox {
driver = {
def remoteWebDriverServerUrl = new URL("http://localhost:5555/wd/hub")
new RemoteWebDriver(remoteWebDriverServerUrl, DesiredCapabilities.firefox())
}
}
}
Then create new gradle task
task myCustomRemoteFirefoxTest(type: ru.d10xa.geb.GebEnvironmentTask) {
gebEnv = "my_custom_remote_firefox"
seleniumPort = 5555
}
You need to explicitly add groovy dependency.
dependencies {
testCompile "org.codehaus.groovy:groovy-all:2.4.7"
}
Early tasks chromeTest, firefoxTest was inherited from Test.
Now it is configuration tasks only. Tests executes in test
task.
This was done for compatibility with IDE debugging.
Now gebEnv used to set the system property geb.env
in tests.