Best Python code snippet using pytractor_python
TractorScripts.py
Source:TractorScripts.py  
...71        :type by: By72        :type value: str73        """74        if by is By.MODEL:75            element = self.find_element_by_model(value)76        elif by is By.BINDING:77            element = self.find_element_by_binding(value)78        elif by is By.BUTTON_TEXT:79            element = self.find_element_by_button_text(value)80        elif by is By.PARTIAL_BUTTON_TEXT:81            element = self.find_element_by_partial_button_text(value)82        elif by is By.REPEATER_ROWS:83            element = self.find_all_repeater_rows(value)84        else:85            element = super().find_element(by=by, value=value)86        if isinstance(element, (list,)):87            for elem in element:88                elem.selector = value89        else:90            element.selector = value91        if auto_wait:92            if not isinstance(element, (list,)):93                element.wait_visible(timeout=timeout, error=True)94                element.scroll_into_view()95        return element96    def find_elements(self, by=By.ID, value=None, auto_wait=True, timeout=20):97        """98        :param auto_wait: bool99        :param timeout: int100        :param wait_method: object101        :type by: By102        :type value: str103        """104        if by is By.MODEL:105            self.find_elements_by_model(value)106        elif by is By.BINDING:107            elements = self.find_elements_by_binding(value)108        elif by is By.BUTTON_TEXT:109            elements = self.find_elements_by_button_text(value)110        elif by is By.PARTIAL_BUTTON_TEXT:111            elements = self.find_elements_by_partial_button_text(value)112        elif by is By.REPEATER_ROWS:113            elements = self.find_all_repeater_rows(value)114        else:115            elements = super().find_elements(by=by, value=value)116        if isinstance(elements, (list,)):117            for elem in elements:118                elem.selector = value119        else:120            elements.selector = value121        if auto_wait:122            if not isinstance(elements, (list,)):123                # element.scroll_into_view()124                elements.wait_visible(timeout=timeout, error=True)125        return elements126    def _run_script(self, script, *args, **kwargs):127        _async = kwargs.pop('_async', False)128        new_args = tuple(['true' if x is True else x for x in list(args)]) if True in args else args129        if _async:130            return self.execute_async_script(script, *new_args, **kwargs), self._web_element_cls131        else:132            return self.execute_script(script, *new_args, **kwargs)133    def wait_for_angular(self):134        return self._run_script(self.waitForAngular, 'body', _async=True)135    @angular_wait_required136    def find_elements_by_model(self, model):137        return self._run_script(self.findByModel, model, _async=False)138    @angular_wait_required139    def find_element_by_model(self, model):140        return self.find_elements_by_model(model)[0]141    @angular_wait_required142    def find_elements_by_binding(self, bindings):143        return self._run_script(self.findBindings, bindings)144    @angular_wait_required145    def find_element_by_binding(self, binding):146        return self.find_elements_by_binding(binding)[0]147    @angular_wait_required148    def find_elements_by_option(self, options):149        return self._run_script(self.findByOptions, options)150    @angular_wait_required151    def find_element_by_option_value(self, option, value, show_first=True):152        opts = self.find_elements_by_option(option)153        results = []...mixins.py
Source:mixins.py  
...150    def find_elements_by_exact_binding(self, descriptor, using=None):151        elements = self._execute_client_script('findBindings', descriptor,152                                               True, using, async=False)153        return elements154    def find_element_by_model(self, descriptor, using=None):155        elements = self.find_elements_by_model(descriptor, using=using)156        if len(elements) == 0:157            raise NoSuchElementException(158                "No element found for model descriptor"159                " {}".format(descriptor)160            )161        else:162            return elements[0]163    @angular_wait_required164    def find_elements_by_model(self, descriptor, using=None):165        elements = self._execute_client_script('findByModel', descriptor,166                                               using, async=False)167        # Workaround for issue #10: findByModel.js returns None instead of empty168        # list if no element has been found....test_locators.py
Source:test_locators.py  
...61class ByModelLocatorTest(LocatorTestCase):62    def setUp(self):63        self.driver.get('index.html#/form')64    def test_find_element_by_model_finds_element_by_text_input_model(self):65        username = self.driver.find_element_by_model('username')66        name = self.driver.find_element_by_binding('username')67        username.clear()68        self.assertEqual(name.text, '')69        username.send_keys('Jane Doe')70        self.assertEqual(name.text, 'Jane Doe')71        username.clear()72        self.assertEqual(name.text, '')73    def test_find_element_by_model_finds_element_by_checkbox_input_model(self):74        shower = self.driver.find_element_by_id('shower')75        self.assertTrue(shower.is_displayed())76        colors = self.driver.find_element_by_model('show')77        colors.click()78        shower = self.driver.find_element_by_id('shower')79        self.assertFalse(shower.is_displayed())80    def test_find_element_by_model_finds_textarea_by_model(self):81        about = self.driver.find_element_by_model('aboutbox')82        self.assertEqual(about.get_attribute('value'), 'This is a text box')83        about.clear()84        about.send_keys('Something else to write about')85        self.assertEqual(about.get_attribute('value'),86                         'Something else to write about')87    def test_find_elements_by_model_find_multiple_selects_by_model(self):88        selects = self.driver.find_elements_by_model('dayColor.color')89        self.assertEqual(len(selects), 3)90    def test_find_element_by_model_finds_the_selected_option(self):91        select = self.driver.find_element_by_model('fruit')92        selected_option = select.find_element_by_css_selector('option:checked')93        self.assertEqual(selected_option.text, 'apple')94    def test_find_element_by_model_finds_inputs_with_alternate_attribute_forms(95        self96    ):97        letter_list = self.driver.find_element_by_id('letterlist')98        self.assertEqual(letter_list.text, '')99        self.driver.find_element_by_model('check.w').click()100        self.assertEqual(letter_list.text, 'w')101        self.driver.find_element_by_model('check.x').click()102        self.assertEqual(letter_list.text, 'wx')103    def test_find_elements_by_model_finds_multiple_inputs(self):104        inputs = self.driver.find_elements_by_model('color')105        self.assertEqual(len(inputs), 3)106    def test_find_elements_by_model_returns_empty_list_if_nothing_found(self):107        """find_elements_by_model() should return an empty list if no elements108        have been found.109        This tests for issue #10 which comes from protractor's findByModel.js110        script.111        """112        result = self.driver.find_elements_by_model('this-model-does-not-exist')113        self.assertIsInstance(result, list)114        self.assertEqual(len(result), 0)115class ByRepeaterTestCase(LocatorTestCase):...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!!
