code: def set_value(self, selector, new_value, by=By.CSS_SELECTOR,
                    timeout=settings.LARGE_TIMEOUT):
          
          if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
              timeout = self.__get_new_timeout(timeout)
          if page_utils.is_xpath_selector(selector):
              by = By.XPATH
          orginal_selector = selector
          css_selector = self.convert_to_css_selector(selector, by=by)
          self.__demo_mode_highlight_if_active(orginal_selector, by)
          if not self.demo_mode:
              self.scroll_to(orginal_selector, by=by, timeout=timeout)
          value = re.escape(new_value)
          value = self.__escape_quotes_if_needed(value)
          css_selector = re.escape(css_selector)
          css_selector = self.__escape_quotes_if_needed(css_selector)
          script = ("""document.querySelector('%s').value='%s';"""
                    % (css_selector, value))
          self.execute_script(script)
          if new_value.endswith('\n'):
              element = self.wait_for_element_present(
                  orginal_selector, by=by, timeout=timeout)
              element.send_keys(Keys.RETURN)
              if settings.WAIT_FOR_RSC_ON_PAGE_LOADS:
                  self.wait_for_ready_state_complete()
          self.__demo_mode_pause_if_active()
docs: This method uses JavaScript to update a text field.