Skip to content

Commit efc2779

Browse files
committed
fix(browsers.browsers): get_types accepts id, name, class, xpath direct instead of the prefix element_
1 parent ddf7efc commit efc2779

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

iarp_utils/browser/browsers.py

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def _start_driver(self):
191191
def load_url(self, url):
192192
self.browser.get(url)
193193

194-
def get_types(self, element_name=None, element_id=None, element_class=None, element_xpath=None):
194+
def get_types(self, **kwargs):
195195
""" Matches the correct By. values for the given element_* param
196196
197197
Argument values must match 100% (no contains searching)
@@ -212,14 +212,27 @@ def get_types(self, element_name=None, element_id=None, element_class=None, elem
212212
if self.global_wait:
213213
self._wait()
214214

215-
if element_id:
216-
return By.ID, element_id
217-
if element_name:
218-
return By.NAME, element_name
219-
if element_class:
220-
return By.CLASS_NAME, element_class
221-
if element_xpath:
222-
return By.XPATH, element_xpath
215+
types = {
216+
'id': By.ID,
217+
'name': By.NAME,
218+
'class': By.CLASS_NAME,
219+
'xpath': By.XPATH,
220+
}
221+
222+
for element_type, v in kwargs.items():
223+
if '_' in element_type:
224+
_, element_type = element_type.split('_', 1)
225+
if by_type := types.get(element_type):
226+
return by_type, v
227+
228+
if eid := kwargs.get('element_id'):
229+
return By.ID, eid
230+
if ename := kwargs.get('element_name'):
231+
return By.NAME, ename
232+
if ec := kwargs.get('element_class'):
233+
return By.CLASS_NAME, ec
234+
if ex := kwargs.get('element_xpath'):
235+
return By.XPATH, ex
223236

224237
raise ValueError('element id, name, class, or xpath must be supplied')
225238

0 commit comments

Comments
 (0)