             [clojure.set :as set]
             [clojure.test.check.generators :as test-gen ]))
 
-
 (defmulti eval!* (fn [driver [type data]] type))
 
 ;; Navigation

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


(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]
  (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,
