   `(when-not (~predicate)
      ~@body))
 
-(defmacro when-not-chrome [driver & body]
+(defmacro when-not-chrome
+  "Executes the body only if a browser is NOT Chrome."
+  [driver & body]
   `(when-not-predicate #(chrome? ~driver) ~@body))
 
-(defmacro when-not-phantom [driver & body]
+(defmacro when-not-phantom
+  "Executes the body only if a browser is NOT Phantom.js."
+  [driver & body]
   `(when-not-predicate #(phantom? ~driver) ~@body))
 
-(defmacro when-not-firefox [driver & body]
+(defmacro when-not-firefox
+  "Executes the body only if a browser is NOT Firefox."
+  [driver & body]
   `(when-not-predicate #(firefox? ~driver) ~@body))
 
-(defmacro when-not-safari [driver & body]
+(defmacro when-not-safari
+  "Executes the body only if a browser is NOT Safari."
+  [driver & body]
   `(when-not-predicate #(safari? ~driver) ~@body))
 
-(defmacro when-predicate [predicate & body]
+(defmacro when-predicate
+  "Executes the body only if a predicate returns true."
+  [predicate & body]
   `(when (~predicate)
      ~@body))
 

;;

(defn click-visible
  [driver q & [opt]]
  (doto driver
    (wait-visible q opt)


  (def driver (chrome))
  (when-chrome driver
    (println \"It's Chrome!\")"

  [driver & body]
  `(when-predicate #(chrome? ~driver) ~@body))

