Skip to content

Commit c613b2d

Browse files
committed
Make convenience updates to "driver.find_element()"
1 parent bfa01d8 commit c613b2d

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ def make_driver_executable_if_not(driver_path):
107107

108108
def extend_driver(driver):
109109
# Extend the driver with new methods
110+
driver.default_find_element = driver.find_element
110111
DM = sb_driver.DriverMethods(driver)
112+
driver.find_element = DM.find_element
113+
driver.locator = DM.locator
111114
page = types.SimpleNamespace()
112115
page.open = DM.open_url
113116
page.click = DM.click

seleniumbase/core/sb_driver.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,34 @@
11
"""Add new methods to extend the driver"""
22
from seleniumbase.fixtures import js_utils
33
from seleniumbase.fixtures import page_actions
4+
from seleniumbase.fixtures import page_utils
45

56

67
class DriverMethods():
78
def __init__(self, driver):
89
self.driver = driver
910

11+
def find_element(self, by, value=None):
12+
if not value:
13+
value = by
14+
by = "css selector"
15+
else:
16+
value, by = page_utils.swap_selector_and_by_if_reversed(value, by)
17+
return self.driver.default_find_element(by=by, value=value)
18+
19+
def locator(self, selector, by=None):
20+
if not by:
21+
by = "css selector"
22+
else:
23+
selector, by = page_utils.swap_selector_and_by_if_reversed(
24+
selector, by
25+
)
26+
try:
27+
return self.driver.default_find_element(by=by, value=selector)
28+
except Exception:
29+
pass
30+
raise Exception('No such Element: {%s} (by="%s")!' % (selector, by))
31+
1032
def open_url(self, *args, **kwargs):
1133
page_actions.open_url(self.driver, *args, **kwargs)
1234

0 commit comments

Comments
 (0)