Ich denke, tatsächlich die click()
Methode überschreiben könnte sich als schwierig erweisen und zu unerwünschtem Verhalten führen. Sie können erreichen, was Sie wollen, obwohl Sie die EventFiringWebDriver
verwenden. Das folgende Beispiel zeigt,
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 über Ausgänge,
Event : before element click()
Event : after element click()
Sie vielleicht einen Blick auf den Splitter Rahmen nehmen wollen, bringt es ein Abstraktionsschicht zu Selen und im Grunde tut das, was Sie wollen https://splinter.readthedocs.org/en/latest/ – sousatg
Danke. Aber ich brauche diese Lösung für Selen-Treiber. –
Sie können den Splitter-Quellcode überprüfen, um zu überprüfen, wie er es macht, und es replizieren. – sousatg