 
 (defn wait-has-text
   [driver q text & [opt]]
-  (wait-predicate #(has-text? driver q text) opt))
+  (let [message (format "Wait for %s element has text %s"
+                        q text)]
+    (wait-predicate #(has-text? driver q text)
+                    (assoc opt :message message))))
 
 (defn wait-has-class [driver q class & [opt]]
   (wait-predicate #(has-class? driver q class) opt))
 
 (defn wait-running [driver & [opt]]
   (wait-predicate #(running? driver) opt))
+
+;;
+;; visible actions
+;;
+
+(defn click-visible
+  [driver q & [opt]]
+  (doto driver
+    (wait-visible q opt)
+    (click q)))
 
 ;;
 ;; touch

(def default-ports
  "Default ports to launch a driver process."
  {:firefox 4444
   :chrome 5555
   :phantom 8910})

(def default-locator "xpath")

;; wait functions
;;

(def default-timeout 20)
(def default-interval 0.33)

(defn wait
  "Does nothing for N seconds."
