diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog for sandwich-webdriver
 
+# 0.4.0.2
+
+* Support `webdriver-0.14.0.0`.
+
 # 0.4.0.1
 
 * Fix accidental mismatch in a couple fields with base sandwich package.
diff --git a/sandwich-webdriver.cabal b/sandwich-webdriver.cabal
--- a/sandwich-webdriver.cabal
+++ b/sandwich-webdriver.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           sandwich-webdriver
-version:        0.4.0.1
+version:        0.4.0.2
 synopsis:       Sandwich integration with Selenium WebDriver
 description:    Please see the <https://codedownio.github.io/sandwich/docs/extensions/sandwich-webdriver documentation>.
 category:       Testing
@@ -79,7 +79,6 @@
     , base <5
     , bytestring
     , containers
-    , data-default
     , directory
     , exceptions
     , filepath
@@ -88,11 +87,8 @@
     , http-conduit
     , http-types
     , microlens
-    , microlens-aeson
-    , monad-control
     , monad-logger
     , mtl
-    , network
     , process
     , random
     , retry
@@ -107,7 +103,6 @@
     , unliftio
     , unliftio-core
     , unordered-containers
-    , vector
     , webdriver >=0.13.0.0
   default-language: Haskell2010
   if os(darwin)
@@ -164,7 +159,6 @@
     , base <5
     , bytestring
     , containers
-    , data-default
     , directory
     , exceptions
     , filepath
@@ -173,11 +167,8 @@
     , http-conduit
     , http-types
     , microlens
-    , microlens-aeson
-    , monad-control
     , monad-logger
     , mtl
-    , network
     , process
     , random
     , retry
@@ -193,7 +184,6 @@
     , unliftio
     , unliftio-core
     , unordered-containers
-    , vector
     , webdriver >=0.13.0.0
   default-language: Haskell2010
   if os(darwin)
diff --git a/src/Test/Sandwich/WebDriver.hs b/src/Test/Sandwich/WebDriver.hs
--- a/src/Test/Sandwich/WebDriver.hs
+++ b/src/Test/Sandwich/WebDriver.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE TypeApplications #-}
 {-# LANGUAGE TypeOperators #-}
@@ -201,7 +202,11 @@
       let driverConfig = W.DriverConfigChromedriver {
             driverConfigChromedriver = browserDependenciesChromeChromedriver
             , driverConfigChrome = browserDependenciesChromeChrome
+#if MIN_VERSION_webdriver(0,14,0)
+            , driverConfigLogDir = Just runRoot
+#else
             , driverConfigLogDir = runRoot
+#endif
             , driverConfigChromedriverFlags = chromedriverExtraFlags wdOptions
             }
       return (caps, driverConfig)
@@ -219,7 +224,11 @@
       let driverConfig = W.DriverConfigGeckodriver {
             driverConfigGeckodriver = browserDependenciesFirefoxGeckodriver
             , driverConfigFirefox = browserDependenciesFirefoxFirefox
+#if MIN_VERSION_webdriver(0,14,0)
+            , driverConfigLogDir = Just runRoot
+#else
             , driverConfigLogDir = runRoot
+#endif
             , driverConfigGeckodriverFlags = "--profile-root" : profileRootDir : geckodriverExtraFlags wdOptions
             -- , driverConfigGeckodriverFlags = geckodriverExtraFlags wdOptions
             }
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -10,6 +10,7 @@
 import System.FilePath
 import Test.WebDriver.Commands
 import Test.Sandwich.WebDriver
+import Test.Sandwich.Waits
 import Control.Monad.IO.Class
 import qualified Data.ByteString.Lazy as BL
 
@@ -22,12 +23,15 @@
 spec :: TopSpecWithOptions
 spec = introduceNixContext (nixpkgsRelease2405 { nixpkgsDerivationAllowUnfree = True }) $
   introduceWebDriverViaNix defaultWdOptions $ do
-    it "opens Google and searches" $ withSession1 $ do
-      openPage [i|https://www.google.com|]
-      search <- findElem (ByCSS [i|*[title="Search"]|])
-      click search
-      sendKeys "Haskell Sandwich" search
-      findElem (ByCSS [i|input[type="submit"]|]) >>= click
+    it "opens Xkcd and presses the prev button" $ withSession1 $ do
+      openPage [i|https://www.xkcd.com|]
+      origUrl <- getCurrentURL
+      prev <- findElem (ByCSS [i|a[rel=prev]|])
+      click prev
+
+      waitUntil 30 $ do
+        url <- getCurrentURL
+        url `shouldNotBe` origUrl
 
       Just dir <- getCurrentFolder
       screenshot >>= liftIO . BL.writeFile (dir </> "screenshot.png")
