Best Python code snippet using toolium_python
utilities.py
Source:utilities.py
...99 elif by == 'partial link text':100 return By.PARTIAL_LINK_TEXT101 else:102 return None103 def _expected_condition_find_element(self, element):104 web_element = False105 try:106 from arc.page_elements import PageElement107 if isinstance(element, PageElement):108 # Use _find_web_element() instead of web_element to avoid logging error message109 element._web_element = None110 element._find_web_element()111 web_element = element._web_element112 elif isinstance(element, tuple):113 web_element = self.driver_wrapper.driver.find_element(*element)114 except NoSuchElementException:115 pass116 return web_element117 def _expected_condition_find_element_visible(self, element):118 try:119 web_element = self._expected_condition_find_element(element)120 return web_element if web_element and web_element.is_displayed() else False121 except NoSuchElementException as e:122 raise e123 except StaleElementReferenceException:124 return False125 def _expected_condition_find_element_not_visible(self, element):126 web_element = self._expected_condition_find_element(element)127 try:128 return True if not web_element or not web_element.is_displayed() else False129 except StaleElementReferenceException:130 return False131 def _expected_condition_find_first_element(self, elements):132 from arc.page_elements import PageElement133 element_found = None134 for element in elements:135 try:136 if isinstance(element, PageElement):137 element._web_element = None138 element._find_web_element()139 else:140 self.driver_wrapper.driver.find_element(*element)141 element_found = element142 break143 except (NoSuchElementException, TypeError):144 pass145 return element_found146 def _expected_condition_find_element_clickable(self, element):147 web_element = self._expected_condition_find_element_visible(element)148 try:149 return web_element if web_element and web_element.is_enabled() else False150 except StaleElementReferenceException:151 return False152 def _expected_condition_find_element_stopped(self, element_times):153 element, times = element_times154 web_element = self._expected_condition_find_element(element)155 try:156 locations_list = [tuple(web_element.location.values()) for _ in range(int(times)) if not time.sleep(0.001)]157 return web_element if set(locations_list) == set(locations_list[-1:]) else False158 except StaleElementReferenceException:159 return False160 def _expected_condition_find_element_containing_text(self, element_text_pair):161 element, text = element_text_pair162 web_element = self._expected_condition_find_element(element)163 try:164 return web_element if web_element and text in web_element.text else False165 except StaleElementReferenceException:166 return False167 def _expected_condition_find_element_not_containing_text(self, element_text_pair):168 element, text = element_text_pair169 web_element = self._expected_condition_find_element(element)170 try:171 return web_element if web_element and text not in web_element.text else False172 except StaleElementReferenceException:173 return False174 def _expected_condition_value_in_element_attribute(self, element_attribute_value):175 element, attribute, value = element_attribute_value176 web_element = self._expected_condition_find_element(element)177 try:178 return web_element if web_element and web_element.get_attribute(attribute) == value else False179 except StaleElementReferenceException:180 return False181 def _wait_until(self, condition_method, condition_input, timeout=None):182 # Remove implicitly wait timeout183 self.driver_wrapper.driver.implicitly_wait(0)184 # Get explicitly wait timeout185 timeout = timeout if timeout else self.get_explicitly_wait()186 # Wait for condition187 if not isinstance(condition_input.web_element, WebElement):188 raise NoSuchElementException(condition_input.text)189 condition_response = WebDriverWait(self.driver_wrapper.driver, timeout).until(190 lambda s: condition_method(condition_input))...
driver_wait_utils.py
Source:driver_wait_utils.py
...37 """Read explicitly timeout from configuration properties38 :returns: configured explicitly timeout (default timeout 10 seconds)39 """40 return int(self.driver_wrapper.config.get_optional('Driver', 'explicitly_wait', '10'))41 def _expected_condition_find_element(self, element):42 """Tries to find the element, but does not thrown an exception if the element is not found43 :param element: PageElement or element locator as a tuple (locator_type, locator_value) to be found44 :returns: the web element if it has been found or False45 :rtype: selenium.webdriver.remote.webelement.WebElement or appium.webdriver.webelement.WebElement46 """47 from toolium.pageelements.page_element import PageElement48 web_element = False49 try:50 if isinstance(element, PageElement):51 # Use _find_web_element() instead of web_element to avoid logging error message52 element._web_element = None53 element._find_web_element()54 web_element = element._web_element55 elif isinstance(element, tuple):56 web_element = self.driver_wrapper.driver.find_element(*element)57 except NoSuchElementException:58 pass59 return web_element60 def _expected_condition_find_element_visible(self, element):61 """Tries to find the element and checks that it is visible, but does not thrown an exception if the element is62 not found63 :param element: PageElement or element locator as a tuple (locator_type, locator_value) to be found64 :returns: the web element if it is visible or False65 :rtype: selenium.webdriver.remote.webelement.WebElement or appium.webdriver.webelement.WebElement66 """67 web_element = self._expected_condition_find_element(element)68 try:69 return web_element if web_element and web_element.is_displayed() else False70 except StaleElementReferenceException:71 return False72 def _expected_condition_find_element_not_visible(self, element):73 """Tries to find the element and checks that it is visible, but does not thrown an exception if the element is74 not found75 :param element: PageElement or element locator as a tuple (locator_type, locator_value) to be found76 :returns: True if the web element is not found or it is not visible77 """78 web_element = self._expected_condition_find_element(element)79 try:80 return True if not web_element or not web_element.is_displayed() else False81 except StaleElementReferenceException:82 return False83 def _expected_condition_find_first_element(self, elements):84 """Try to find sequentially the elements of the list and return the first element found85 :param elements: list of PageElements or element locators as a tuple (locator_type, locator_value) to be found86 sequentially87 :returns: first element found or None88 :rtype: toolium.pageelements.PageElement or tuple89 """90 from toolium.pageelements.page_element import PageElement91 element_found = None92 for element in elements:93 try:94 if isinstance(element, PageElement):95 element._web_element = None96 element._find_web_element()97 else:98 self.driver_wrapper.driver.find_element(*element)99 element_found = element100 break101 except (NoSuchElementException, TypeError):102 pass103 return element_found104 def _expected_condition_find_element_clickable(self, element):105 """Tries to find the element and checks that it is clickable, but does not thrown an exception if the element106 is not found107 :param element: PageElement or element locator as a tuple (locator_type, locator_value) to be found108 :returns: the web element if it is clickable or False109 :rtype: selenium.webdriver.remote.webelement.WebElement or appium.webdriver.webelement.WebElement110 """111 web_element = self._expected_condition_find_element_visible(element)112 try:113 return web_element if web_element and web_element.is_enabled() else False114 except StaleElementReferenceException:115 return False116 def _expected_condition_find_element_stopped(self, element_times):117 """Tries to find the element and checks that it has stopped moving, but does not thrown an exception if the118 element is not found119 :param element_times: Tuple with 2 items where:120 [0] element: PageElement or element locator as a tuple (locator_type, locator_value) to be found121 [1] times: number of iterations checking the element's location that must be the same for all of them122 in order to considering the element has stopped123 :returns: the web element if it is clickable or False124 :rtype: selenium.webdriver.remote.webelement.WebElement or appium.webdriver.webelement.WebElement125 """126 element, times = element_times127 web_element = self._expected_condition_find_element(element)128 try:129 locations_list = [tuple(web_element.location.values()) for i in range(int(times)) if not time.sleep(0.001)]130 return web_element if set(locations_list) == set(locations_list[-1:]) else False131 except StaleElementReferenceException:132 return False133 def _expected_condition_find_element_containing_text(self, element_text_pair):134 """Tries to find the element and checks that it contains the specified text, but does not thrown an exception if135 the element is not found136 :param element_text_pair: Tuple with 2 items where:137 [0] element: PageElement or element locator as a tuple (locator_type, locator_value) to be found138 [1] text: text to be contained into the element139 :returns: the web element if it contains the text or False140 :rtype: selenium.webdriver.remote.webelement.WebElement or appium.webdriver.webelement.WebElement141 """142 element, text = element_text_pair143 web_element = self._expected_condition_find_element(element)144 try:145 return web_element if web_element and text in web_element.text else False146 except StaleElementReferenceException:147 return False148 def _expected_condition_find_element_not_containing_text(self, element_text_pair):149 """Tries to find the element and checks that it does not contain the specified text,150 but does not thrown an exception if the element is found151 :param element_text_pair: Tuple with 2 items where:152 [0] element: PageElement or element locator as a tuple (locator_type, locator_value) to be found153 [1] text: text to not be contained into the element154 :returns: the web element if it does not contain the text or False155 :rtype: selenium.webdriver.remote.webelement.WebElement or appium.webdriver.webelement.WebElement156 """157 element, text = element_text_pair158 web_element = self._expected_condition_find_element(element)159 try:160 return web_element if web_element and text not in web_element.text else False161 except StaleElementReferenceException:162 return False163 def _expected_condition_value_in_element_attribute(self, element_attribute_value):164 """Tries to find the element and checks that it contains the requested attribute with the expected value,165 but does not thrown an exception if the element is not found166 :param element_attribute_value: Tuple with 3 items where:167 [0] element: PageElement or element locator as a tuple (locator_type, locator_value) to be found168 [1] attribute: element's attribute where to check its value169 [2] value: expected value for the element's attribute170 :returns: the web element if it contains the expected value for the requested attribute or False171 :rtype: selenium.webdriver.remote.webelement.WebElement or appium.webdriver.webelement.WebElement172 """173 element, attribute, value = element_attribute_value174 web_element = self._expected_condition_find_element(element)175 try:176 return web_element if web_element and web_element.get_attribute(attribute) == value else False177 except StaleElementReferenceException:178 return False179 def _expected_condition_ajax_request_completed(self, element):180 """Load all ajax request181 :returns: the ajax request is completed182 """183 return self.driver_wrapper.driver.execute_script("return jQuery.active == 0")184 def _wait_until(self, condition_method, condition_input, timeout=None):185 """186 Common method to wait until condition met187 :param condition_method: method to check the condition188 :param condition_input: parameter that will be passed to the condition method...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!