I think actually overriding the click()
method might prove tricky and result in unwanted behavior. You might be able to achieve what you're after though using the EventFiringWebDriver
. See the following example,
from selenium import webdriver
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener
# My custom event listener
class MyListener(AbstractEventListener):
def before_click(self, element, driver):
print "Event : before element click()"
def after_click(self, element, driver):
print "Event : after element click()"
# Get an event-firing-web-driver instance
driver = EventFiringWebDriver(webdriver.Firefox(), MyListener())
# Visit a site
driver.get("http://www.google.co.in/")
# Find an element
elem = driver.find_element_by_name("q")
# Click on element
elem.click()
# Close browser
driver.close()
Script above outputs,
Event : before element click()
Event : after element click()