单击事件后的Python Selenium抽象事件侦听器

单击事件后的Python Selenium抽象事件侦听器,python,event-handling,selenium-chromedriver,Python,Event Handling,Selenium Chromedriver,我有一些javascript函数,它被设置为窗口“点击”事件的事件监听器。该函数检测事件目标,在DOM中获取其xpath并写入某个变量。然后在Python Selenium中执行查询以返回该变量的值。 现在的问题是,我想通过继承AbstractEventListener并重写其方法来自动化web浏览器中的所有后续操作,但当我用鼠标左键单击某个元素时,“after_click”事件不会被触发。我做错了什么?有没有办法避免这次挫折? 示例代码: from selenium import webdri

我有一些javascript函数,它被设置为窗口“点击”事件的事件监听器。该函数检测事件目标,在DOM中获取其xpath并写入某个变量。然后在Python Selenium中执行查询以返回该变量的值。 现在的问题是,我想通过继承AbstractEventListener并重写其方法来自动化web浏览器中的所有后续操作,但当我用鼠标左键单击某个元素时,“after_click”事件不会被触发。我做错了什么?有没有办法避免这次挫折? 示例代码:

from selenium import webdriver
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener
%run js_script_texts.ipynb

class MyListener(AbstractEventListener):
def after_navigate_to(self, url, driver):
    driver.execute_script(declare_variable_clicking)
    driver.execute_script(declare_variable_inputting)
    driver.execute_script(declare_variable_input_data)
    driver.execute_script(get_xpath_and_data)
    driver.execute_script(click_event_handler)
    driver.execute_script(input_event_handler)
def after_execute_script(self, script, driver):
    print("Script executed")
def after_click(self, element, driver):
    print("There was a click!")

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)
driver_plain = webdriver.Chrome(chrome_options = chrome_options)
edriver = EventFiringWebDriver(driver_plain, MyListener())
edriver.get("http://www.example.com")