   corresponding properties."
   [driver q & names]
   (apply get-element-csss-el driver (query driver q) names))
-
-;;
-;; active element
-;;
-
-(defmulti get-active* dispatch-driver)
-
-(defmethods get-active*
-  [:chrome :phantom :safari]
-  [driver]
-  (with-resp driver :get
-    [:session (:session @driver) :element :active]
-    nil resp
-    (-> resp :value :ELEMENT)))
-
-(defmethod get-active* :firefox
-  [driver]
-  (with-resp driver :get
-    [:session (:session @driver) :element :active]
-    nil resp
-    (-> resp :value first second)))
 
 ;;
 ;; element text, name and value

    nil _))

;;
;; actice element
;;

(defmulti ^:private get-active-element*

    [:session (:session @driver) :keys]
    {:value (apply make-input* text more)} _))

(defmethod fill-active*
  :firefox
  [driver text & more]
  (let [el (get-active-element* driver)]
    (apply fill-el driver el text more)))

(defn fill-active
  "Fills an active element with keys."
  [driver text & more]
  (apply fill-active* driver text more))

(defmulti fill-el
  "Fills an element with text by its identifier."
  {:arglists '([driver el text & more])}
  dispatch-driver)

(defmethod fill-el
  :default
  [driver el text & more]
  (with-resp driver :post
    [:session (:session @driver) :element el :value]
    {:value (apply make-input* text more)} _))

(defmethod fill-el
  :firefox ;; todo support the old version for :default
  [driver el text & more]
  (with-resp driver :post
    [:session (:session @driver) :element el :value]
    {:text (str/join (apply make-input* text more))} _))

(defn fill
  "Fills an element found with a query with a given text.
