@@ -10926,8 +10926,49 @@ def deferred_assert_element(
10926
10926
self.__add_deferred_assert_failure(fs=fs)
10927
10927
return False
10928
10928
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
+
10929
10970
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
10931
10972
):
10932
10973
"""A non-terminating assertion for text from an element on a page.
10933
10974
Failures will be saved until the process_deferred_asserts()
0 commit comments