Skip to content

Commit e4274fd

Browse files
committed
Add jquery-confirm into SeleniumBase
1 parent 2be8f0b commit e4274fd

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

help_docs/method_summary.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ self.play_tour(name=None)
114114

115115
self.export_tour(name=None, filename="my_tour.js")
116116

117+
self.activate_jquery_confirm()
118+
117119
self.activate_messenger()
118120

119121
self.post_message(message, style="info", duration=None)

seleniumbase/fixtures/base_case.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,6 +1173,9 @@ def export_tour(self, name=None, filename="my_tour.js"):
11731173
save the tour to. """
11741174
tour_helper.export_tour(self._tour_steps, name=name, filename=filename)
11751175

1176+
def activate_jquery_confirm(self):
1177+
js_utils.activate_jquery_confirm(self.driver)
1178+
11761179
def activate_messenger(self):
11771180
js_utils.activate_messenger(self.driver)
11781181

seleniumbase/fixtures/constants.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@ class IntroJS:
8585
"intro.js/%s/intro.min.js" % VER)
8686

8787

88+
class JqueryConfirm:
89+
VER = "3.3.2"
90+
MIN_CSS = ("//cdnjs.cloudflare.com/ajax/libs/"
91+
"jquery-confirm/%s/jquery-confirm.min.css" % VER)
92+
MIN_JS = ("//cdnjs.cloudflare.com/ajax/libs/"
93+
"jquery-confirm/%s/jquery-confirm.min.js" % VER)
94+
95+
8896
class Shepherd:
8997
VER = "1.8.1"
9098
MIN_JS = ("//cdnjs.cloudflare.com/ajax/libs/"

seleniumbase/fixtures/js_utils.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,35 @@ def add_meta_tag(driver, http_equiv=None, content=None):
337337
driver.execute_script(script_to_add_meta)
338338

339339

340+
def is_jquery_confirm_activated(driver):
341+
try:
342+
driver.execute_script("jconfirm") # Fails if jq_confirm is not defined
343+
return True
344+
except Exception:
345+
return False
346+
347+
348+
def activate_jquery_confirm(driver):
349+
jquery_js = constants.JQuery.MIN_JS
350+
jq_confirm_css = constants.JqueryConfirm.MIN_CSS
351+
jq_confirm_js = constants.JqueryConfirm.MIN_JS
352+
353+
if not is_jquery_activated(driver):
354+
add_js_link(driver, jquery_js)
355+
add_css_link(driver, jq_confirm_css)
356+
add_js_link(driver, jq_confirm_js)
357+
358+
for x in range(int(settings.MINI_TIMEOUT * 10.0)):
359+
# jQuery-Confirm needs a small amount of time to load & activate.
360+
try:
361+
driver.execute_script("jconfirm")
362+
wait_for_ready_state_complete(driver)
363+
wait_for_angularjs(driver)
364+
return
365+
except Exception:
366+
time.sleep(0.1)
367+
368+
340369
def activate_messenger(driver):
341370
jquery_js = constants.JQuery.MIN_JS
342371
messenger_css = constants.Messenger.MIN_CSS

0 commit comments

Comments
 (0)