@@ -28,29 +28,38 @@ trait WebBrowserSpec extends WebBrowserUtil {
28
28
* @param testCode the test code to run
29
29
*/
30
30
def withWebDriver (testCode : (WebDriver ) => Any ): Unit = {
31
- // this needs to be changed!
32
- val service = new ChromeDriverService .Builder ().usingDriverExecutable(new File (" /usr/local/bin/chromedriver" )).usingAnyFreePort().build()
31
+ val localBrowser = new SystemProperties ().get(" local.browser" )
32
+ localBrowser match {
33
+ case Some (" true" ) => runLocalChrome(testCode)
34
+ case _ => runHeadless(testCode)
35
+ }
36
+ }
37
+
38
+ private def runLocalChrome (testCode : (WebDriver ) => Any ) = {
39
+ val service = new ChromeDriverService .Builder ().usingDriverExecutable(new File (Config .ChromeSettings .localChrome)).usingAnyFreePort().build()
33
40
service.start()
34
- implicit val webDriver = initWebDriver(service)
41
+ val driver = new RemoteWebDriver (service.getUrl, DesiredCapabilities .chrome())
42
+ driver.setFileDetector(new LocalFileDetector ())
35
43
try {
36
- testCode(webDriver )
44
+ testCode(driver )
37
45
} finally {
38
- webDriver .quit()
46
+ driver .quit()
39
47
service.stop()
40
48
}
41
49
}
42
50
43
- private def initWebDriver (service : ChromeDriverService ): WebDriver = {
44
- val localBrowser = new SystemProperties ().get(" local.browser" )
51
+ private def runHeadless (testCode : (WebDriver ) => Any ) = {
45
52
val defaultChrome = Config .ChromeSettings .chromedriverHost
46
- val driver = localBrowser match {
47
- case Some (" true" ) => new RemoteWebDriver (service.getUrl, DesiredCapabilities .chrome())
48
- case _ => new RemoteWebDriver (new URL (defaultChrome), DesiredCapabilities .chrome())
49
- }
53
+ val driver = new RemoteWebDriver (new URL (defaultChrome), DesiredCapabilities .chrome())
50
54
driver.setFileDetector(new LocalFileDetector ())
51
- driver
55
+ try {
56
+ testCode(driver)
57
+ } finally {
58
+ driver.quit()
59
+ }
52
60
}
53
61
62
+
54
63
/**
55
64
* Make a random alpha-numeric (lowercase) string to be used as a semi-unique
56
65
* identifier.
0 commit comments