|
1 | 1 | """Add new methods to extend the driver"""
|
2 | 2 | from contextlib import suppress
|
3 | 3 | from selenium.webdriver.remote.webelement import WebElement
|
| 4 | +from seleniumbase.config import settings |
4 | 5 | from seleniumbase.fixtures import js_utils
|
5 | 6 | from seleniumbase.fixtures import page_actions
|
6 | 7 | from seleniumbase.fixtures import page_utils
|
@@ -189,6 +190,8 @@ def is_alert_present(self):
|
189 | 190 | return False
|
190 | 191 |
|
191 | 192 | def is_online(self):
|
| 193 | + if self.__is_cdp_swap_needed(): |
| 194 | + return self.driver.cdp.evaluate("navigator.onLine;") |
192 | 195 | return self.driver.execute_script("return navigator.onLine;")
|
193 | 196 |
|
194 | 197 | def is_connected(self):
|
@@ -231,17 +234,35 @@ def get_text(self, *args, **kwargs):
|
231 | 234 | return page_actions.get_text(self.driver, *args, **kwargs)
|
232 | 235 |
|
233 | 236 | def get_active_element_css(self, *args, **kwargs):
|
| 237 | + if self.__is_cdp_swap_needed(): |
| 238 | + return self.driver.cdp.get_active_element_css() |
234 | 239 | return js_utils.get_active_element_css(self.driver, *args, **kwargs)
|
235 | 240 |
|
236 | 241 | def get_locale_code(self, *args, **kwargs):
|
| 242 | + if self.__is_cdp_swap_needed(): |
| 243 | + return self.driver.cdp.get_locale_code() |
237 | 244 | return js_utils.get_locale_code(self.driver, *args, **kwargs)
|
238 | 245 |
|
| 246 | + def get_screen_rect(self, *args, **kwargs): |
| 247 | + if self.__is_cdp_swap_needed(): |
| 248 | + return self.driver.cdp.get_screen_rect() |
| 249 | + return js_utils.get_screen_rect(self.driver, *args, **kwargs) |
| 250 | + |
239 | 251 | def get_origin(self, *args, **kwargs):
|
| 252 | + if self.__is_cdp_swap_needed(): |
| 253 | + return self.driver.cdp.get_origin() |
240 | 254 | return js_utils.get_origin(self.driver, *args, **kwargs)
|
241 | 255 |
|
242 | 256 | def get_user_agent(self, *args, **kwargs):
|
| 257 | + if self.__is_cdp_swap_needed(): |
| 258 | + return self.driver.cdp.get_user_agent() |
243 | 259 | return js_utils.get_user_agent(self.driver, *args, **kwargs)
|
244 | 260 |
|
| 261 | + def get_cookie_string(self, *args, **kwargs): |
| 262 | + if self.__is_cdp_swap_needed(): |
| 263 | + return self.driver.cdp.get_cookie_string() |
| 264 | + return js_utils.get_cookie_string(self.driver, *args, **kwargs) |
| 265 | + |
245 | 266 | def highlight(self, *args, **kwargs):
|
246 | 267 | if self.__is_cdp_swap_needed():
|
247 | 268 | selector = None
|
@@ -312,6 +333,16 @@ def switch_to_frame(self, frame="iframe"):
|
312 | 333 | iframe = self.locator(frame)
|
313 | 334 | self.driver.switch_to.frame(iframe)
|
314 | 335 |
|
| 336 | + def reset_window_size(self): |
| 337 | + if self.__is_cdp_swap_needed(): |
| 338 | + self.driver.cdp.reset_window_size() |
| 339 | + return |
| 340 | + x = settings.WINDOW_START_X |
| 341 | + y = settings.WINDOW_START_Y |
| 342 | + width = settings.CHROME_START_WIDTH |
| 343 | + height = settings.CHROME_START_HEIGHT |
| 344 | + self.driver.set_window_rect(x, y, width, height) |
| 345 | + |
315 | 346 | def set_wire_proxy(self, string):
|
316 | 347 | """Set a proxy server for selenium-wire mode ("--wire")
|
317 | 348 | Examples: (ONLY avilable if using selenium-wire mode!)
|
|
0 commit comments