I would like to log the manually user actions on browser startet with selenium / webdriver. My following Script works so far with the automated actions, but is not logging / printing the actions i do manually in the browser. What i am doing wrong? Here is my script so far:
from selenium import webdriver
import logging
from selenium.webdriver.common.by import By
from selenium.webdriver.support.events import EventFiringWebDriver
from selenium.webdriver.support.events import AbstractEventListener
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s:%(levelname)s:%(message)s')
class MyListener(AbstractEventListener):
def __init__(self, logger):
super().__init__()
self.logger = logger
def before_navigate_to(self, url, driver):
self.logger.info(f"Laden der Seite: {url}")
def before_find(self, by, value, driver):
self.logger.info(f"Suche nach {by} mit dem Wert {value}.")
def after_find(self, by, value, driver):
self.logger.info(f"Element gefunden: {by} mit dem Wert {value}.")
def before_click(self, element, driver):
print(f"Klick auf {element}.")
self.logger.info(f"Klick auf {element}.")
def after_click(self, element, driver):
print(f"Klick auf {element} beendet.")
self.logger.info(f"Klick auf {element} beendet.")
def before_change_value_of(self, element, driver):
print(f"Eingabe in {element}.")
self.logger.info(f"Eingabe in {element}.")
def after_change_value_of(self, element, driver):
print(f"Eingabe in {element} beendet.")
self.logger.info(f"Eingabe in {element} beendet.")
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=chrome_options)
driver = EventFiringWebDriver(driver, MyListener(logging))
driver.get("https://www.google.com/")
nutzungsb = driver.find_element(By.ID,"W0wltc")
nutzungsb.click()
search_box = driver.find_element(By.NAME,"q")
search_box.send_keys("user_input")
search_box.submit()
app.log:
2023-03-10 10:39:32,961:INFO:Laden der Seite: https://www.google.com/
2023-03-10 10:39:34,720:INFO:Suche nach id mit dem Wert W0wltc.
2023-03-10 10:39:34,753:INFO:Element gefunden: id mit dem Wert W0wltc.
2023-03-10 10:39:34,753:INFO:Klick auf <selenium.webdriver.remote.webelement.WebElement (session="ba492d8265b7d98601d6c58daafd1d81", element="4e348086-9653-461c-bf8e-6dfc8129c608")>.
2023-03-10 10:39:34,843:INFO:Klick auf <selenium.webdriver.remote.webelement.WebElement (session="ba492d8265b7d98601d6c58daafd1d81", element="4e348086-9653-461c-bf8e-6dfc8129c608")> beendet.
2023-03-10 10:39:34,843:INFO:Suche nach name mit dem Wert q.
2023-03-10 10:39:34,862:INFO:Element gefunden: name mit dem Wert q.
2023-03-10 10:39:34,862:INFO:Eingabe in <selenium.webdriver.remote.webelement.WebElement (session="ba492d8265b7d98601d6c58daafd1d81", element="9174f201-0095-4c9b-9344-ee2fa54bb56b")>.
2023-03-10 10:39:34,937:INFO:Eingabe in <selenium.webdriver.remote.webelement.WebElement (session="ba492d8265b7d98601d6c58daafd1d81", element="9174f201-0095-4c9b-9344-ee2fa54bb56b")> beendet.