- add sources.
[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 HoverOver(self):
29     self._Execute(Command.HOVER_OVER_ELEMENT)
30
31   def Click(self):
32     self._Execute(Command.CLICK_ELEMENT)
33
34   def SingleTap(self):
35     self._Execute(Command.TOUCH_SINGLE_TAP)
36
37   def Clear(self):
38     self._Execute(Command.CLEAR_ELEMENT)
39
40   def SendKeys(self, *values):
41     typing = []
42     for value in values:
43       if isinstance(value, int):
44         value = str(value)
45       for i in range(len(value)):
46         typing.append(value[i])
47     self._Execute(Command.SEND_KEYS_TO_ELEMENT, {'value': typing})
48
49   def GetLocation(self):
50     return self._Execute(Command.GET_ELEMENT_LOCATION)