Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Reformat cond statements to be (1) more readable and (2) properly ind…
Browse files Browse the repository at this point in the history
…ented
  • Loading branch information
semperos committed Feb 10, 2013
1 parent 40f72b2 commit e9260ca
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 46 deletions.
87 changes: 53 additions & 34 deletions src/clj_webdriver/core_driver.clj
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@
(let [this-handle (window-handle* (:webdriver driver)) (let [this-handle (window-handle* (:webdriver driver))
idx (.indexOf handles this-handle)] idx (.indexOf handles this-handle)]
(cond (cond
(zero? idx) (do ; if first window, switch to next (zero? idx)
(.close (:webdriver driver)) (do ; if first window, switch to next
(switch-to-window driver (nth handles (inc idx)))) (.close (:webdriver driver))
:else (do ; otherwise, switch back one window (switch-to-window driver (nth handles (inc idx))))
(.close (:webdriver driver))
(switch-to-window driver (nth handles (dec idx))))) :else
(do ; otherwise, switch back one window
(.close (:webdriver driver))
(switch-to-window driver (nth handles (dec idx)))))
(cache/seed driver {})) (cache/seed driver {}))
(do (do
(.close (:webdriver driver)) (.close (:webdriver driver))
Expand Down Expand Up @@ -125,19 +128,28 @@


(switch-to-window [driver window] (switch-to-window [driver window]
(cond (cond
(string? window) (do (string? window)
(.window (.switchTo (:webdriver driver)) window) (do
driver) (.window (.switchTo (:webdriver driver)) window)
(win/window? window) (do driver)
(.window (.switchTo (:driver window)) (:handle window))
driver) (win/window? window)
(number? window) (do (do
(switch-to-window driver (nth (windows driver) window)) (.window (.switchTo (:driver window)) (:handle window))
driver) driver)
(nil? window) (throw (RuntimeException. "No window can be found"))
:else (do (number? window)
(.window (.switchTo (:webdriver driver)) window) (do
driver))) (switch-to-window driver (nth (windows driver) window))
driver)

(nil? window)
(throw (RuntimeException. "No window can be found"))

:else
(do
(.window (.switchTo (:webdriver driver)) window)
driver)))


(switch-to-other-window [driver] (switch-to-other-window [driver]
(if (not= (count (windows driver)) 2) (if (not= (count (windows driver)) 2)
Expand All @@ -158,23 +170,23 @@
(add-cookie [driver cookie-spec] (add-cookie [driver cookie-spec]
(.addCookie (.manage (:webdriver driver)) (:cookie (init-cookie cookie-spec))) (.addCookie (.manage (:webdriver driver)) (:cookie (init-cookie cookie-spec)))
driver) driver)

(delete-cookie-named [driver cookie-name] (delete-cookie-named [driver cookie-name]
(.deleteCookieNamed (.manage (:webdriver driver)) cookie-name) (.deleteCookieNamed (.manage (:webdriver driver)) cookie-name)
driver) driver)

(delete-cookie [driver cookie-spec] (delete-cookie [driver cookie-spec]
(.deleteCookie (.manage (:webdriver driver)) (:cookie (init-cookie cookie-spec))) (.deleteCookie (.manage (:webdriver driver)) (:cookie (init-cookie cookie-spec)))
driver) driver)

(delete-all-cookies [driver] (delete-all-cookies [driver]
(.deleteAllCookies (.manage (:webdriver driver))) (.deleteAllCookies (.manage (:webdriver driver)))
driver) driver)

(cookies [driver] (cookies [driver]
(set (map #(init-cookie {:cookie %}) (set (map #(init-cookie {:cookie %})
(.getCookies (.manage (:webdriver driver)))))) (.getCookies (.manage (:webdriver driver))))))

(cookie-named [driver cookie-name] (cookie-named [driver cookie-name]
(let [cookie-obj (.getCookieNamed (.manage (:webdriver driver)) cookie-name)] (let [cookie-obj (.getCookieNamed (.manage (:webdriver driver)) cookie-name)]
(init-cookie {:cookie cookie-obj}))) (init-cookie {:cookie cookie-obj})))
Expand All @@ -186,7 +198,7 @@


(alert-obj [driver] (alert-obj [driver]
(-> driver :webdriver .switchTo .alert)) (-> driver :webdriver .switchTo .alert))

(alert-text [driver] (alert-text [driver]
(-> driver :webdriver .switchTo .alert .getText)) (-> driver :webdriver .switchTo .alert .getText))


Expand All @@ -196,7 +208,7 @@


(dismiss [driver] (dismiss [driver]
(-> driver :webdriver .switchTo .alert .dismiss)) (-> driver :webdriver .switchTo .alert .dismiss))

;; Find Functions ;; Find Functions
IFind IFind
(find-element-by [driver by-value] (find-element-by [driver by-value]
Expand Down Expand Up @@ -307,7 +319,7 @@
([driver element] ([driver element]
(let [act (:actions driver)] (let [act (:actions driver)]
(.perform (.doubleClick act (:webelement element)))))) (.perform (.doubleClick act (:webelement element))))))

(drag-and-drop (drag-and-drop
[driver element-a element-b] [driver element-a element-b]
(let [act (:actions driver)] (let [act (:actions driver)]
Expand Down Expand Up @@ -436,11 +448,18 @@
(cond (cond
;; Accept by-clauses ;; Accept by-clauses
(not (or (vector? attr-val) (not (or (vector? attr-val)
(map? attr-val))) (find-elements-by driver attr-val) (map? attr-val)))
;; Accept vectors for hierarchical queries (find-elements-by driver attr-val)
(vector? attr-val) (find-by-hierarchy driver attr-val)
;; Build XPath dynamically ;; Accept vectors for hierarchical queries
:else (find-elements-by driver (by-query (build-query attr-val)))) (vector? attr-val)
(find-by-hierarchy driver attr-val)

;; Build XPath dynamically
:else
(find-elements-by driver (by-query (build-query attr-val))))
(catch org.openqa.selenium.NoSuchElementException e (catch org.openqa.selenium.NoSuchElementException e
;; NoSuchElementException caught here, so we can have functions like `exist?` ;; NoSuchElementException caught here to mimic Clojure behavior like
(lazy-seq [(init-element nil)]))))) ;; (get {:foo "bar"} :baz) since the page can be thought of as a kind of associative
;; data structure with unique selectors as keys and HTML elements as values
(lazy-seq nil)))))
24 changes: 12 additions & 12 deletions src/clj_webdriver/core_element.clj
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@
(when (= webdriver-result "true") (when (= webdriver-result "true")
attr) attr)
webdriver-result)))) webdriver-result))))

(click [element] (click [element]
(.click (:webelement element)) (.click (:webelement element))
(cache/set-status :check) (cache/set-status :check)
nil) nil)

(css-value [element property] (css-value [element property]
(.getCssValue (:webelement element) property)) (.getCssValue (:webelement element) property))


Expand Down Expand Up @@ -99,13 +99,13 @@
(let [rect-a (rectangle element-a) (let [rect-a (rectangle element-a)
rect-b (rectangle element-b)] rect-b (rectangle element-b)]
(.intersects rect-a rect-b))) (.intersects rect-a rect-b)))

(tag [element] (tag [element]
(.getTagName (:webelement element))) (.getTagName (:webelement element)))


(text [element] (text [element]
(.getText (:webelement element))) (.getText (:webelement element)))

(value [element] (value [element]
(.getAttribute (:webelement element) "value")) (.getAttribute (:webelement element) "value"))


Expand All @@ -114,42 +114,42 @@


(xpath [element] (xpath [element]
(browserbot (.getWrappedDriver (:webelement element)) "getXPath" (:webelement element) [])) (browserbot (.getWrappedDriver (:webelement element)) "getXPath" (:webelement element) []))



IFormElement IFormElement
(deselect [element] (deselect [element]
(if (.isSelected (:webelement element)) (if (.isSelected (:webelement element))
(toggle (:webelement element)) (toggle (:webelement element))
element)) element))

(enabled? [element] (enabled? [element]
(.isEnabled (:webelement element))) (.isEnabled (:webelement element)))

(input-text [element s] (input-text [element s]
(.sendKeys (:webelement element) (into-array CharSequence (list s))) (.sendKeys (:webelement element) (into-array CharSequence (list s)))
element) element)

(submit [element] (submit [element]
(.submit (:webelement element)) (.submit (:webelement element))
(cache/set-status :flush) (cache/set-status :flush)
nil) nil)

(clear [element] (clear [element]
(.clear (:webelement element)) (.clear (:webelement element))
element) element)

(select [element] (select [element]
(if-not (.isSelected (:webelement element)) (if-not (.isSelected (:webelement element))
(.click (:webelement element)) (.click (:webelement element))
element)) element))

(selected? [element] (selected? [element]
(.isSelected (:webelement element))) (.isSelected (:webelement element)))


(send-keys [element s] (send-keys [element s]
(.sendKeys (:webelement element) (into-array CharSequence (list s))) (.sendKeys (:webelement element) (into-array CharSequence (list s)))
element) element)

(toggle [element] (toggle [element]
(.click (:webelement element)) (.click (:webelement element))
element) element)
Expand Down

0 comments on commit e9260ca

Please sign in to comment.