Roll src/third_party/WebKit bf18a82:a9cee16 (svn 185297:185304)
[chromium-blink-merge.git] / chrome / test / chromedriver / client / webelement.py
blob5d7dda689f0e5a894946f94d200d669b56d25018
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.
5 from command_executor import Command
8 class WebElement(object):
9 """Represents an HTML element."""
10 def __init__(self, chromedriver, id_):
11 self._chromedriver = chromedriver
12 self._id = id_
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)
20 def FindElement(self, strategy, target):
21 return self._Execute(
22 Command.FIND_CHILD_ELEMENT, {'using': strategy, 'value': target})
24 def FindElements(self, strategy, target):
25 return self._Execute(
26 Command.FIND_CHILD_ELEMENTS, {'using': strategy, 'value': target})
28 def GetText(self):
29 return self._Execute(Command.GET_ELEMENT_TEXT)
31 def HoverOver(self):
32 self._Execute(Command.HOVER_OVER_ELEMENT)
34 def Click(self):
35 self._Execute(Command.CLICK_ELEMENT)
37 def SingleTap(self):
38 self._Execute(Command.TOUCH_SINGLE_TAP)
40 def Clear(self):
41 self._Execute(Command.CLEAR_ELEMENT)
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})
52 def GetLocation(self):
53 return self._Execute(Command.GET_ELEMENT_LOCATION)