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