Skip to content

Commit 3b1e29c

Browse files
committed
Update wait-url-change to wait for URL to match a regex
In addition to waiting for the URL to change, wait-url-change also waits for the new URL to match a regex (with re-find).
1 parent 18169d3 commit 3b1e29c

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

test/etaoin/api_test.clj

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,14 @@
135135
(e/wait-visible *driver* {:id :document-end}))
136136

137137
(defmacro wait-url-change
138-
[& body]
138+
[re & body]
139139
`(let [old-url# (e/get-url *driver*)]
140140
~@body
141-
(e/wait-predicate (fn [] (not= old-url# (e/get-url *driver*)))
141+
(e/wait-predicate (fn [] (let [new-url# (e/get-url *driver*)]
142+
(and (not= old-url# new-url#)
143+
(re-find ~re new-url#))))
142144
{:timeout 30 ; 30 second timeout total
143-
:interval 0.100 ;
145+
:interval 0.100 ; poll at 100 msec interval
144146
:message "Timeout waiting for URL change"})))
145147

146148
(deftest test-browser-conditionals
@@ -204,7 +206,7 @@
204206
(e/fill-multi *driver* {:simple-input 1
205207
:simple-password 2
206208
:simple-textarea 3})
207-
(wait-url-change
209+
(wait-url-change #"login"
208210
(e/submit *driver* :simple-input))
209211
(is (str/ends-with? (e/get-url *driver*) "?login=1&password=2&message=3")))
210212

@@ -214,14 +216,14 @@
214216
(e/fill-multi *driver* {:simple-input 1
215217
:simple-password 2
216218
:simple-textarea 3})
217-
(wait-url-change (e/click *driver* :simple-submit))
219+
(wait-url-change #"login" (e/click *driver* :simple-submit))
218220
(is (str/ends-with? (e/get-url *driver*) "?login=1&password=2&message=3"))
219221
;; Test with vector form
220222
(e/fill-multi *driver*
221223
[:simple-input 4
222224
:simple-password 5
223225
:simple-textarea 6])
224-
(wait-url-change (e/click *driver* :simple-submit))
226+
(wait-url-change #"login" (e/click *driver* :simple-submit))
225227
(is (str/ends-with? (e/get-url *driver*) "?login=4&password=5&message=6")))
226228
(testing "fill-multi bad inputs"
227229
(is (thrown+? [:type :etaoin/argument]
@@ -236,14 +238,14 @@
236238
{:simple-input "login"
237239
:simple-password "123"
238240
:simple-textarea "text"})
239-
(wait-url-change (e/click *driver* :simple-submit))
241+
(wait-url-change #"login" (e/click *driver* :simple-submit))
240242
(is (str/ends-with? (e/get-url *driver*) "?login=login&password=123&message=text"))
241243
;; Test with vector form
242244
(e/fill-human-multi *driver*
243245
[:simple-input "login2"
244246
:simple-password "456"
245247
:simple-textarea "text2"])
246-
(wait-url-change (e/click *driver* :simple-submit))
248+
(wait-url-change #"login" (e/click *driver* :simple-submit))
247249
(is (str/ends-with? (e/get-url *driver*) "?login=login2&password=456&message=text2")))
248250
(testing "fill-human-multi bad inputs"
249251
(is (thrown+? [:type :etaoin/argument]
@@ -254,7 +256,7 @@
254256
(e/fill-multi *driver* [:vector :with :odd :length :is :not :allowed]))))
255257
(testing "fill multiple vars"
256258
(e/fill *driver* :simple-input 1 "test" 2 \space \A)
257-
(wait-url-change (e/click *driver* :simple-submit))
259+
(wait-url-change #"login" (e/click *driver* :simple-submit))
258260
(is (str/ends-with? (e/get-url *driver*) "?login=1test2+A&password=&message=")))
259261
(testing "fill active"
260262
(e/click *driver* :simple-input)
@@ -263,7 +265,7 @@
263265
(e/fill-active *driver* "MyPassword")
264266
(e/click *driver* :simple-textarea)
265267
(e/fill-active *driver* "Some text")
266-
(wait-url-change (e/click *driver* :simple-submit))
268+
(wait-url-change #"login" (e/click *driver* :simple-submit))
267269
(is (str/ends-with? (e/get-url *driver*)
268270
"?login=MyLogin&password=MyPassword&message=Some+text")))
269271
(testing "fill active human"
@@ -273,7 +275,7 @@
273275
(e/fill-human-active *driver* "MyPassword2")
274276
(e/click *driver* :simple-textarea)
275277
(e/fill-human-active *driver* "Some text 2")
276-
(wait-url-change (e/click *driver* :simple-submit))
278+
(wait-url-change #"login" (e/click *driver* :simple-submit))
277279
(is (str/ends-with? (e/get-url *driver*)
278280
"?login=MyLogin2&password=MyPassword2&message=Some+text+2"))))
279281

@@ -312,7 +314,7 @@
312314
(testing "simple clear"
313315
(e/fill *driver* {:id :simple-input} "test")
314316
(e/clear *driver* {:id :simple-input})
315-
(wait-url-change (e/click *driver* {:id :simple-submit}))
317+
(wait-url-change #"login" (e/click *driver* {:id :simple-submit}))
316318
(is (str/ends-with? (e/get-url *driver*) "?login=&password=&message=")))
317319

318320
(testing "multiple clear"
@@ -329,7 +331,7 @@
329331
:simple-input
330332
:simple-password
331333
:simple-textarea)
332-
(wait-url-change (e/click *driver* {:id :simple-submit}))
334+
(wait-url-change #"login" (e/click *driver* {:id :simple-submit}))
333335
(is (str/ends-with? (e/get-url *driver*) "?login=&password=&message="))))
334336

335337
(deftest test-enabled
@@ -1140,7 +1142,7 @@
11401142
(e/add-pointer-click-el textarea)
11411143
e/add-pause
11421144
(e/add-pointer-click-el submit))]
1143-
(wait-url-change
1145+
(wait-url-change #"login"
11441146
(e/perform-actions *driver* keyboard mouse))
11451147
(is (str/ends-with? (e/get-url *driver*) "?login=1&password=2&message=3")))))
11461148

0 commit comments

Comments
 (0)