admin管理员组文章数量:1390564
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:
本文标签: pythonHow to implement WebDriver Event Listeners in Robot FrameworkStack Overflow
版权声明:本文标题:python - How to implement WebDriver Event Listeners in Robot Framework - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744750196a2623129.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论