@@ -94,6 +94,16 @@ def assert_text(self, *args, **kwargs):
9494 def assert_exact_text (self , * args , ** kwargs ):
9595 page_actions .assert_exact_text (self .driver , * args , ** kwargs )
9696
97+ def assert_non_empty_text (self , * args , ** kwargs ):
98+ return page_actions .assert_non_empty_text (
99+ self .driver , * args , ** kwargs
100+ )
101+
102+ def assert_text_not_visible (self , * args , ** kwargs ):
103+ return page_actions .assert_text_not_visible (
104+ self .driver , * args , ** kwargs
105+ )
106+
97107 def wait_for_element (self , * args , ** kwargs ):
98108 return page_actions .wait_for_element (self .driver , * args , ** kwargs )
99109
@@ -112,6 +122,16 @@ def wait_for_text(self, *args, **kwargs):
112122 def wait_for_exact_text (self , * args , ** kwargs ):
113123 return page_actions .wait_for_exact_text (self .driver , * args , ** kwargs )
114124
125+ def wait_for_non_empty_text (self , * args , ** kwargs ):
126+ return page_actions .wait_for_non_empty_text (
127+ self .driver , * args , ** kwargs
128+ )
129+
130+ def wait_for_text_not_visible (self , * args , ** kwargs ):
131+ return page_actions .wait_for_text_not_visible (
132+ self .driver , * args , ** kwargs
133+ )
134+
115135 def wait_for_and_accept_alert (self , * args , ** kwargs ):
116136 return page_actions .wait_for_and_accept_alert (
117137 self .driver , * args , ** kwargs
@@ -134,14 +154,22 @@ def is_text_visible(self, *args, **kwargs):
134154 def is_exact_text_visible (self , * args , ** kwargs ):
135155 return page_actions .is_exact_text_visible (self .driver , * args , ** kwargs )
136156
137- def get_text (self , * args , ** kwargs ):
138- return page_actions .get_text (self .driver , * args , ** kwargs )
157+ def is_attribute_present (self , * args , ** kwargs ):
158+ return page_actions .has_attribute (self .driver , * args , ** kwargs )
159+
160+ def is_non_empty_text_visible (self , * args , ** kwargs ):
161+ return page_actions .is_non_empty_text_visible (
162+ self .driver , * args , ** kwargs
163+ )
164+
165+ def is_online (self ):
166+ return self .driver .execute_script ("return navigator.onLine;" )
139167
140168 def js_click (self , * args , ** kwargs ):
141169 return page_actions .js_click (self .driver , * args , ** kwargs )
142170
143- def is_attribute_present (self , * args , ** kwargs ):
144- return page_actions .has_attribute (self .driver , * args , ** kwargs )
171+ def get_text (self , * args , ** kwargs ):
172+ return page_actions .get_text (self .driver , * args , ** kwargs )
145173
146174 def get_active_element_css (self , * args , ** kwargs ):
147175 return js_utils .get_active_element_css (self .driver , * args , ** kwargs )
@@ -182,7 +210,32 @@ def highlight_if_visible(
182210 if self .is_element_visible (selector , by = by ):
183211 self .highlight (selector , by = by , loops = loops , scroll = scroll )
184212
185- def switch_to_frame (self , frame ):
213+ def switch_to_default_window (self ):
214+ self .driver .switch_to .window (self .driver .window_handles [0 ])
215+
216+ def switch_to_newest_window (self ):
217+ self .driver .switch_to .window (self .driver .window_handles [- 1 ])
218+
219+ def open_new_window (self , switch_to = True ):
220+ if switch_to :
221+ try :
222+ self .driver .switch_to .new_window ("tab" )
223+ except Exception :
224+ self .driver .execute_script ("window.open('');" )
225+ self .switch_to_newest_window ()
226+ else :
227+ self .driver .execute_script ("window.open('');" )
228+
229+ def open_new_tab (self , switch_to = True ):
230+ self .open_new_window (switch_to = switch_to )
231+
232+ def switch_to_window (self , * args , ** kwargs ):
233+ page_actions .switch_to_window (self .driver , * args , ** kwargs )
234+
235+ def switch_to_tab (self , * args , ** kwargs ):
236+ self .switch_to_window (* args , ** kwargs )
237+
238+ def switch_to_frame (self , frame = "iframe" ):
186239 if isinstance (frame , WebElement ):
187240 self .driver .switch_to .frame (frame )
188241 else :
0 commit comments