Skip to content

Commit 711987e

Browse files
committed
Add more sb methods into the driver
1 parent f4e3496 commit 711987e

File tree

2 files changed

+83
-6
lines changed

2 files changed

+83
-6
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,22 +132,34 @@ def extend_driver(driver):
132132
page.assert_element_not_visible = DM.assert_element_not_visible
133133
page.assert_text = DM.assert_text
134134
page.assert_exact_text = DM.assert_exact_text
135+
page.assert_non_empty_text = DM.assert_non_empty_text
136+
page.assert_text_not_visible = DM.assert_text_not_visible
135137
page.wait_for_element = DM.wait_for_element
136138
page.wait_for_text = DM.wait_for_text
137139
page.wait_for_exact_text = DM.wait_for_exact_text
140+
page.wait_for_non_empty_text = DM.wait_for_non_empty_text
141+
page.wait_for_text_not_visible = DM.wait_for_text_not_visible
138142
page.wait_for_and_accept_alert = DM.wait_for_and_accept_alert
139143
page.wait_for_and_dismiss_alert = DM.wait_for_and_dismiss_alert
140144
page.is_element_present = DM.is_element_present
141145
page.is_element_visible = DM.is_element_visible
142146
page.is_text_visible = DM.is_text_visible
143147
page.is_exact_text_visible = DM.is_exact_text_visible
144148
page.is_attribute_present = DM.is_attribute_present
149+
page.is_non_empty_text_visible = DM.is_non_empty_text_visible
145150
page.get_text = DM.get_text
146151
page.find_element = DM.find_element
147152
page.find_elements = DM.find_elements
148153
page.locator = DM.locator
149154
page.get_page_source = DM.get_page_source
150155
page.get_title = DM.get_title
156+
page.switch_to_default_window = DM.switch_to_default_window
157+
page.switch_to_newest_window = DM.switch_to_newest_window
158+
page.open_new_window = DM.open_new_window
159+
page.open_new_tab = DM.open_new_tab
160+
page.switch_to_window = DM.switch_to_window
161+
page.switch_to_tab = DM.switch_to_tab
162+
page.switch_to_frame = DM.switch_to_frame
151163
driver.page = page
152164
js = types.SimpleNamespace()
153165
js.js_click = DM.js_click
@@ -171,21 +183,27 @@ def extend_driver(driver):
171183
driver.assert_element_not_visible = DM.assert_element_not_visible
172184
driver.assert_text = DM.assert_text
173185
driver.assert_exact_text = DM.assert_exact_text
186+
driver.assert_non_empty_text = DM.assert_non_empty_text
187+
driver.assert_text_not_visible = DM.assert_text_not_visible
174188
driver.wait_for_element = DM.wait_for_element
175189
driver.wait_for_element_visible = DM.wait_for_element_visible
176190
driver.wait_for_element_present = DM.wait_for_element_present
177191
driver.wait_for_selector = DM.wait_for_selector
178192
driver.wait_for_text = DM.wait_for_text
179193
driver.wait_for_exact_text = DM.wait_for_exact_text
194+
driver.wait_for_non_empty_text = DM.wait_for_non_empty_text
195+
driver.wait_for_text_not_visible = DM.wait_for_text_not_visible
180196
driver.wait_for_and_accept_alert = DM.wait_for_and_accept_alert
181197
driver.wait_for_and_dismiss_alert = DM.wait_for_and_dismiss_alert
182198
driver.is_element_present = DM.is_element_present
183199
driver.is_element_visible = DM.is_element_visible
184200
driver.is_text_visible = DM.is_text_visible
185201
driver.is_exact_text_visible = DM.is_exact_text_visible
186202
driver.is_attribute_present = DM.is_attribute_present
187-
driver.get_text = DM.get_text
203+
driver.is_non_empty_text_visible = DM.is_non_empty_text_visible
204+
driver.is_online = DM.is_online
188205
driver.js_click = DM.js_click
206+
driver.get_text = DM.get_text
189207
driver.get_active_element_css = DM.get_active_element_css
190208
driver.get_locale_code = DM.get_locale_code
191209
driver.get_origin = DM.get_origin
@@ -197,6 +215,12 @@ def extend_driver(driver):
197215
driver.get_attribute = DM.get_attribute
198216
driver.get_page_source = DM.get_page_source
199217
driver.get_title = DM.get_title
218+
driver.switch_to_default_window = DM.switch_to_default_window
219+
driver.switch_to_newest_window = DM.switch_to_newest_window
220+
driver.open_new_window = DM.open_new_window
221+
driver.open_new_tab = DM.open_new_tab
222+
driver.switch_to_window = DM.switch_to_window
223+
driver.switch_to_tab = DM.switch_to_tab
200224
driver.switch_to_frame = DM.switch_to_frame
201225
if hasattr(driver, "proxy"):
202226
driver.set_wire_proxy = DM.set_wire_proxy

seleniumbase/core/sb_driver.py

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)