Skip to content

Commit 28f7643

Browse files
committed
Add driver methods
1 parent 97dfc85 commit 28f7643

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,10 @@ def extend_driver(driver):
187187
driver.highlight = DM.highlight
188188
driver.highlight_click = DM.highlight_click
189189
driver.sleep = time.sleep
190+
driver.get_attribute = DM.get_attribute
190191
driver.get_page_source = DM.get_page_source
191192
driver.get_title = DM.get_title
193+
driver.switch_to_frame = DM.switch_to_frame
192194
if hasattr(driver, "proxy"):
193195
driver.set_wire_proxy = DM.set_wire_proxy
194196
return driver

seleniumbase/core/sb_driver.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Add new methods to extend the driver"""
2+
from selenium.webdriver.remote.webelement import WebElement
23
from seleniumbase.fixtures import js_utils
34
from seleniumbase.fixtures import page_actions
45
from seleniumbase.fixtures import page_utils
@@ -41,6 +42,10 @@ def locator(self, selector, by=None):
4142
pass
4243
raise Exception('No such Element: {%s} (by="%s")!' % (selector, by))
4344

45+
def get_attribute(self, selector, attribute, by="css selector"):
46+
element = self.locator(selector, by=by)
47+
return element.get_attribute(attribute)
48+
4449
def get_page_source(self):
4550
return self.driver.page_source
4651

@@ -158,6 +163,13 @@ def highlight_click(self, *args, **kwargs):
158163
kwargs.pop("loops")
159164
page_actions.click(self.driver, *args, **kwargs)
160165

166+
def switch_to_frame(self, frame):
167+
if isinstance(frame, WebElement):
168+
self.driver.switch_to.frame(frame)
169+
else:
170+
iframe = self.locator(frame)
171+
self.driver.switch_to.frame(iframe)
172+
161173
def set_wire_proxy(self, string):
162174
"""Set a proxy server for selenium-wire mode ("--wire")
163175
Examples: (ONLY avilable if using selenium-wire mode!)

0 commit comments

Comments
 (0)