Skip to content

Commit a979804

Browse files
committed
Add method: deferred_assert_element_present(selector)
1 parent 6de6991 commit a979804

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

seleniumbase/fixtures/base_case.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10926,8 +10926,49 @@ def deferred_assert_element(
1092610926
self.__add_deferred_assert_failure(fs=fs)
1092710927
return False
1092810928

10929+
def deferred_assert_element_present(
10930+
self, selector, by="css selector", timeout=None, fs=False
10931+
):
10932+
"""A non-terminating assertion for an element present in the page html.
10933+
Failures will be saved until the process_deferred_asserts()
10934+
method is called from inside a test, likely at the end of it.
10935+
If "fs" is set to True, a failure screenshot is saved to the
10936+
"latest_logs/" folder for that assertion failure. Otherwise,
10937+
only the last page screenshot is taken for all failures when
10938+
calling the process_deferred_asserts() method.
10939+
"""
10940+
self.__check_scope()
10941+
if not timeout:
10942+
timeout = settings.MINI_TIMEOUT
10943+
if self.timeout_multiplier and timeout == settings.MINI_TIMEOUT:
10944+
timeout = self.__get_new_timeout(timeout)
10945+
self.__deferred_assert_count += 1
10946+
try:
10947+
url = self.get_current_url()
10948+
if url == self.__last_url_of_deferred_assert:
10949+
timeout = 1 # Was already on page (full wait not needed)
10950+
else:
10951+
self.__last_url_of_deferred_assert = url
10952+
except Exception:
10953+
pass
10954+
if self.recorder_mode:
10955+
url = self.get_current_url()
10956+
if url and len(url) > 0:
10957+
if ("http:") in url or ("https:") in url or ("file:") in url:
10958+
if self.get_session_storage_item("pause_recorder") == "no":
10959+
time_stamp = self.execute_script("return Date.now();")
10960+
origin = self.get_origin()
10961+
action = ["da_ep", selector, origin, time_stamp]
10962+
self.__extra_actions.append(action)
10963+
try:
10964+
self.wait_for_element_present(selector, by=by, timeout=timeout)
10965+
return True
10966+
except Exception:
10967+
self.__add_deferred_assert_failure(fs=fs)
10968+
return False
10969+
1092910970
def deferred_assert_text(
10930-
self, text, selector="html", by=By.CSS_SELECTOR, timeout=None, fs=False
10971+
self, text, selector="html", by="css selector", timeout=None, fs=False
1093110972
):
1093210973
"""A non-terminating assertion for text from an element on a page.
1093310974
Failures will be saved until the process_deferred_asserts()

0 commit comments

Comments
 (0)