У меня есть тестовая html-страница, которая изменяет innerHTML элемента div.мне не удалось использовать selenium.webdriver.support.abstract_event_listener.after_change_value_of (см. https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.event_firing_webdriver.html#module-selenium.webdriver.support.event_firing_webdriver) для получения уведомлений о событиях при изменении innerHTML. Я хотел бы знать, где происходит ошибка и каков правильный механизм для указаниятаких событий.
Я написал небольшую тестовую программу на python, которая использует селеновый веб-драйвер и chromedriver. События before_navigate_to и after_navigate_to запускаются, но after_change_value_of не запускается.
#....
#....
def dump_msg(msg):
print("[%d] %s" % (current_milli_time(), msg))
#....
#....
class MyListener(AbstractEventListener):
def before_navigate_to(self, url, driver):
dump_msg("Before navigate to %s" % url)
def after_navigate_to(self, url, driver):
dump_msg("After navigate to %s" % url)
def after_change_value_of(self, element, driver):
#+---------------------------+
#| why isnt this working ??? |
#+---------------------------+
dump_msg("After change value of %s" % type(element))
#....
#....
driver = webdriver.Chrome("/usr/bin/chromedriver",chrome_options=chrome_options)
ef_driver = EventFiringWebDriver(driver, MyListener())
ef_driver.get("file:///test/test_change.html")
#....
#....
test_change.html выглядит следующим образом
<!DOCTYPE html>
<html>
<head>
<style>
.boxed1 {
background-color: yellow;
opacity:0.4;
}
</style>
</head>
<body>
<div id="foo" class="boxed1"> </div>
<script>
document.getElementById("foo").innerHTML = Date();
setInterval(function() {
curr_date_time = Date();
document.getElementById("foo").innerHTML = curr_date_time;
//console.log("updated date_time to " + curr_date_time);
}, 1000);
</script>
</body>
</html>
при запуске программы...[1562418297938] Перед тем как перейти к файлу: ///test/test_change.html[1562418298269] После перехода к файлу: ///test/test_change.html...
Я ожидаю увидеть «После изменения значения ...», но его там нет