 
 (defmulti eval! (fn [driver xs] (type (first xs))))
 
+(defmethod eval! nil [_ _])
+
 (defmethod eval! clojure.lang.PersistentVector
   [driver xs]
   (doseq [x xs]
     (eval! driver x)))
 
+(defonce last-exception (atom nil))
+
 (defmethod eval! clojure.lang.Keyword
   [driver x]
-  (eval!* driver x))
+  (try
+    (eval!* driver x)
+    (catch org.openqa.selenium.NoSuchElementException e
+      (reset! last-exception e)
+      (throw (Exception. (str "Couldn't find element for:" (pr-str x)))))))
 
 (defn walk-n-steps!
   "Generates an action and evals it until n actions or no possible actions,

(ns osmium.core-test
  (:require [clojure.test :refer :all]
            [clj-webdriver.taxi :as taxi]
            [osmium.core :as o]
            [osmium.user :as user]

            [clojure.set :as set]
            [clojure.test.check.generators :as test-gen ]))

(defmulti eval!* (fn [driver [type data]] type))

;; Navigation
