I'm new to Robot Framework. I'm trying to implement WebDriver Event Listeners by importing Selenium Library.
In my Test case, I have this import
Library SeleniumLibrary event_firing_webdriver=${CURDIR}/RobotFrameworkListener.py
In RobotFrameworkListener.py file,
from robot.api import logger
from selenium.webdriver.support.events import AbstractEventListener
from robot.libraries.BuiltIn import BuiltIn
from selenium.webdriver.support.events import EventFiringWebDriver
selib = BuiltIn().get_library_instance("SeleniumLibrary")
driver = selib.driver
class RobotFrameworkListener(AbstractEventListener):
def before_navigate_to(self, url, driver):
logger.info("URL before navigation: '%s'." % url)
def after_navigate_to(self, url, driver):
logger.info("URL after navigation: '%s'." % driver.current_url)
def before_change_value_of(self, element, driver):
dict= element.get_property('attributes')
element_value = dict[2]['value']
logger.info("Before clearing/entering the text field '%s'." % element_value)
def after_change_value_of(self, element, driver):
dict= element.get_property('attributes')
element_value = dict[2]['value']
logger.info("After clearing/entering the text field '%s'." % element_value)
So could some one help me on how to trigger listeners for my main Test case so that I can do an action on web driver events like after click, before click, after entering the text etc? Let me know if there is any other way to do it :) Thanks in advance!
I'm new to Robot Framework. I'm trying to implement WebDriver Event Listeners by importing Selenium Library.
In my Test case, I have this import
Library SeleniumLibrary event_firing_webdriver=${CURDIR}/RobotFrameworkListener.py
In RobotFrameworkListener.py file,
from robot.api import logger
from selenium.webdriver.support.events import AbstractEventListener
from robot.libraries.BuiltIn import BuiltIn
from selenium.webdriver.support.events import EventFiringWebDriver
selib = BuiltIn().get_library_instance("SeleniumLibrary")
driver = selib.driver
class RobotFrameworkListener(AbstractEventListener):
def before_navigate_to(self, url, driver):
logger.info("URL before navigation: '%s'." % url)
def after_navigate_to(self, url, driver):
logger.info("URL after navigation: '%s'." % driver.current_url)
def before_change_value_of(self, element, driver):
dict= element.get_property('attributes')
element_value = dict[2]['value']
logger.info("Before clearing/entering the text field '%s'." % element_value)
def after_change_value_of(self, element, driver):
dict= element.get_property('attributes')
element_value = dict[2]['value']
logger.info("After clearing/entering the text field '%s'." % element_value)
So could some one help me on how to trigger listeners for my main Test case so that I can do an action on web driver events like after click, before click, after entering the text etc? Let me know if there is any other way to do it :) Thanks in advance!
Share Improve this question asked Mar 12 at 13:16 Bhavya SBhavya S 174 bronze badges1 Answer
Reset to default 1I commented some lines in your listener, and it worked:
RobotFrameworkListener.py file:
from robot.api import logger
from selenium.webdriver.support.events import AbstractEventListener
from robot.libraries.BuiltIn import BuiltIn
# from selenium.webdriver.support.events import EventFiringWebDriver
# selib = BuiltIn().get_library_instance("SeleniumLibrary")
# driver = selib.driver
class RobotFrameworkListener(AbstractEventListener):
def before_navigate_to(self, url, driver):
logger.info("URL before navigation: '%s'." % url)
def after_navigate_to(self, url, driver):
logger.info("URL after navigation: '%s'." % driver.current_url)
def before_change_value_of(self, element, driver):
dict= element.get_property('attributes')
element_value = dict[2]['value']
logger.info("Before clearing/entering the text field '%s'." % element_value)
def after_change_value_of(self, element, driver):
dict= element.get_property('attributes')
element_value = dict[2]['value']
logger.info("After clearing/entering the text field '%s'." % element_value)
Test Case:
*** Settings ***
Documentation This is a test suite to test SO question: https://stackoverflow/questions/79503722/how-to-implement-webdriver-event-listeners-in-robot-framework
Suite Teardown Close All Browsers
Library SeleniumLibrary event_firing_webdriver=${CURDIR}/RobotFrameworkListener.py
*** Variables ***
${URL} https://github/robotframework/SeleniumLibrary
${ISSUES} ${URL}/issues
${BROWSER} Chrome
*** Test Cases ***
Open Browser To Start Page
Open Browser ${URL} ${BROWSER}
Event Firing Webdriver Go To (WebDriver)
Go To ${ISSUES}
Event Firing Webdriver Click Element (WebElement)
Click Element repository-input
Event Firing Webdriver Input Text (WebElement)
Input Text repository-input FooBar
Listener output in RIDE message window:
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744750197a4591547.html
评论列表(0条)