Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / test / chromedriver / client / webelement.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 from command_executor import Command
6
7
8 class WebElement(object):
9   """Represents an HTML element."""
10   def __init__(self, chromedriver, id_):
11     self._chromedriver = chromedriver
12     self._id = id_
13
14   def _Execute(self, command, params=None):
15     if params is None:
16       params = {}
17     params['id'] = self._id;
18     return self._chromedriver.ExecuteCommand(command, params)
19
20   def FindElement(self, strategy, target):
21     return self._Execute(
22         Command.FIND_CHILD_ELEMENT, {'using': strategy, 'value': target})
23
24   def FindElements(self, strategy, target):
25     return self._Execute(
26         Command.FIND_CHILD_ELEMENTS, {'using': strategy, 'value': target})
27
28   def GetText(self):
29     return self._Execute(Command.GET_ELEMENT_TEXT)
30
31   def HoverOver(self):
32     self._Execute(Command.HOVER_OVER_ELEMENT)
33
34   def Click(self):
35     self._Execute(Command.CLICK_ELEMENT)
36
37   def SingleTap(self):
38     self._Execute(Command.TOUCH_SINGLE_TAP)
39
40   def Clear(self):
41     self._Execute(Command.CLEAR_ELEMENT)
42
43   def SendKeys(self, *values):
44     typing = []
45     for value in values:
46       if isinstance(value, int):
47         value = str(value)
48       for i in range(len(value)):
49         typing.append(value[i])
50     self._Execute(Command.SEND_KEYS_TO_ELEMENT, {'value': typing})
51
52   def GetLocation(self):
53     return self._Execute(Command.GET_ELEMENT_LOCATION)