text: import os
  import sys
  import random
  import unittest
  
  sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
  import base_test
  
  repo_root = os.path.abspath(os.path.join(__file__, "../../.."))
  sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
  from webdriver import exceptions
  
  
  class SendKeysTest(base_test.WebDriverBaseTest):
      def setUp(self):
          self.driver.get(self.webserver.where_is("user_input/res/text-form.html"))
  
      def test_send_simple_string(self):
          element = self.driver.find_element_by_id("Text1")
          element.send_keys("lorem ipsum")
  
          self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"lorem ipsum")
  
      def test_send_return(self):
          element = self.driver.find_element_by_id("Text1")
          returnkey = unichr(int("E006", 16))
          element.send_keys([returnkey])
  
          self.assertEquals(u"" + self.driver.get_current_url(), u"" + self.webserver.where_is("user_input/res/text-form-landing.html?e=mc2"))
  
      def test_send_backspace(self):
          element = self.driver.find_element_by_id("Text1")
          element.send_keys("world ")
          element.send_keys("wide ")
          element.send_keys("web ")
          element.send_keys("consortium")
  
          backspace= unichr(int("E003", 16))
          for i in range(0, 11):
              element.send_keys([backspace])
  
          self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"world wide web")
  
      def test_send_tab(self):
          element1 = self.driver.find_element_by_id("Text1")
          element2 = self.driver.find_element_by_id("Text2")
          element1.send_keys("typing here")
  
          tab= unichr(int("E004", 16))
          element1.send_keys([tab])
  
          output = self.driver.find_element_by_id("output")
          tab_pressed = output.get_attribute("checked")
          self.assertEquals(tab_pressed, u"true")
  
      def test_send_shift(self):
          element = self.driver.find_element_by_id("Text1")
          element.send_keys("low ")
  
          shift= unichr(int("E008", 16))
          element.send_keys([shift , "u", "p", shift])
  
          self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"low UP")
  
      def test_send_arrow_keys(self):
          element = self.driver.find_element_by_id("Text1")
  
          element.send_keys("internet")
  
          backspace= unichr(int("E003", 16))
          left= unichr(int("E012", 16))
          right= unichr(int("E014", 16))
          for i in range(0, 4):
              element.send_keys([left])
  
          element.send_keys([backspace])
          element.send_keys([right])
          element.send_keys("a")
  
          self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"intranet")
  
      def test_select_text_with_shift(self):
          element = self.driver.find_element_by_id("Text1")
  
          element.send_keys("WebDriver")
          backspace= unichr(int("E003", 16))
          shift= unichr(int("E008", 16))
          left= unichr(int("E012", 16))
  
          element.send_keys([shift, left, left, left, left, left, left, backspace])
  
          self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"Web")
  
  
  if __name__ == "__main__":
      unittest.main()
  