def execute(self, context, text):
        js_loader = JsCodeLoader()

        active_element_dom = js_loader.exec_js(context, 'get_active_element_dom.js')
        context.browser_driver.type_text(active_element_dom, text)
        active_element_value = js_loader.exec_js(context, 'verify_active_element_value.js')

        if (active_element_value != text):
            raise self.failed('Focused element does not support keyboard input')
    def execute(self, context, element_type, element_text, tab_number):
        js_loader = JsCodeLoader()
        if (tab_number):
            result = js_loader.exec_js(context, 'tab_navigation.js', element_text, tab_number)
        else:
            result = js_loader.exec_js(context, 'tab_navigation.js', element_text, self.MAX_NUMBER_OF_TAB_KEYS)

        if (result == self.NOT_FOUND_ELEMENT):
            raise self.failed('"' + element_text + '" does not exists or is not focusable...')
        if (result == self.MAX_TAB_PRESSES_EXCEEDED):
            raise self.failed('"' + element_text + '" max number of tab key presses was exceeded...')
    def execute(self, context, element_type, element_text, key_number):
        js_loader = JsCodeLoader()

        if (key_number):
            result = js_loader.exec_js(context, 'arrow_navigation.js', element_text, key_number)
        else:
            result = js_loader.exec_js(context, 'arrow_navigation.js', element_text, self.MAX_NUMBER_OF_KEY_PRESSES)

        if result == self.NOT_FOUND_RESPONSE:
            raise self.failed('"' + element_text + '" does not exists or is not present in the page structure')
        if result == self.MAX_NUMBER_OF_KEY_PRESSES_RESPONSE:
            raise self.failed('"' + element_text + '" was not found within the max number of key presses established')
    def test_exec_js_should_call_js_loader_and_browser_driver_exec_js(self):
        context_mock = Mock()
        context_mock.browser_driver.exec_js.return_value = 'document.getEle...'
        js_file_stub = 'some_js_file.js'

        jsloader = JsCodeLoader()
        jsloader._load = Mock()
        jsloader._load.return_value = 'function(){console.log();...'
        result = jsloader.exec_js(context_mock, js_file_stub)

        jsloader._load.assert_called_with('some_js_file.js', ())
        context_mock.browser_driver.exec_js.assert_called_with('function(){console.log();...')

        self.assertEquals('document.getEle...', result)
 def execute(self, context, extra_argument):
     js_loader = JsCodeLoader()
     active_element_dom = js_loader.exec_js(context, 'get_active_element_dom.js')
     context.browser_driver.type_keys(active_element_dom, '\13')
     result = js_loader.exec_js(context, 'activate_elements.js')