From c0d73e0e2b761060e052646faf1b4bf6aef8a20a Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Sun, 25 Feb 2018 20:36:46 -0500 Subject: [PATCH] Add methods to help with css selector processing --- seleniumbase/fixtures/base_case.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/seleniumbase/fixtures/base_case.py b/seleniumbase/fixtures/base_case.py index 1d38b9f0..e2c327ab 100755 --- a/seleniumbase/fixtures/base_case.py +++ b/seleniumbase/fixtures/base_case.py @@ -1321,6 +1321,22 @@ class BaseCase(unittest.TestCase): ############ + def _recalculate_selector(self, selector, by): + # Try to determine the type of selector automatically + if page_utils.is_xpath_selector(selector): + by = By.XPATH + if page_utils.is_link_text_selector(selector): + selector = page_utils.get_link_text_from_selector(selector) + by = By.LINK_TEXT + return (selector, by) + + def _make_css_match_first_element_only(self, selector): + # Only get the first match + last_syllable = selector.split(' ')[-1] + if ':' not in last_syllable and ':contains' not in selector: + selector += ':first' + return selector + def _demo_mode_pause_if_active(self, tiny=False): if self.demo_mode: if self.demo_sleep: