{"id":42,"date":"2017-06-28T09:11:50","date_gmt":"2017-06-28T09:11:50","guid":{"rendered":"https:\/\/www.h2kinfosys.com\/blog\/?p=42"},"modified":"2025-10-23T07:05:18","modified_gmt":"2025-10-23T11:05:18","slug":"listeners-using-webdriver-event-listner","status":"publish","type":"post","link":"https:\/\/www.h2kinfosys.com\/blog\/listeners-using-webdriver-event-listner\/","title":{"rendered":"Listeners using webdriver event listner"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Introduction: The Hidden Power Behind Selenium Automation Testing<\/strong><\/h2>\n\n\n\n<p>In every successful Selenium Test Automation framework, there\u2019s one secret ingredient that separates beginners from professionals Listeners using WebDriver.<\/p>\n\n\n\n<p>Automation testing is all about precision, repeatability, and efficiency. But what happens when tests fail unexpectedly? How do you know which step caused the issue? That\u2019s where Listeners using WebDriver come in. They help developers and testers monitor, log, and react to WebDriver events in real-time.<\/p>\n\n\n\n<p>If you are pursuing a Selenium course or preparing for a <a href=\"https:\/\/www.h2kinfosys.com\/courses\/selenium-automation-testing-certification-course\/\">Test automation certification<\/a>, mastering Listeners using WebDriver is essential. It\u2019s not just about writing test scripts it\u2019s about controlling how your scripts behave and respond during runtime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. What Are Listeners Using WebDriver?<\/strong><\/h2>\n\n\n\n<p>In Selenium automation testing, listeners are special interfaces that &#8220;listen&#8221; to specific events while tests are running. They help you perform custom actions when those events occur such as taking screenshots when a test fails or logging a message when navigation starts.<\/p>\n\n\n\n<p>When we talk about Listeners using WebDriver, we refer to Selenium\u2019s built-in interface called <strong><code>WebDriverEventListener<\/code><\/strong>.<\/p>\n\n\n\n<p>This interface tracks browser actions such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clicking on elements<\/li>\n\n\n\n<li>Navigating between pages<\/li>\n\n\n\n<li>Finding elements<\/li>\n\n\n\n<li>Handling alerts<\/li>\n\n\n\n<li>Executing scripts<\/li>\n<\/ul>\n\n\n\n<p>By using Listeners using WebDriver, testers can automate tasks like logging, debugging, and result reporting without changing the main test logic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Why Listeners Using WebDriver Matter in Selenium Test Automation<\/strong><\/h2>\n\n\n\n<p>Automation frameworks need transparency and reliability. Listeners using WebDriver make it easier to achieve both.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Key Benefits<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automatic Debugging:<\/strong> Capture detailed logs for every browser action.<\/li>\n\n\n\n<li><strong>Enhanced Reporting:<\/strong> Generate readable reports showing test flow.<\/li>\n\n\n\n<li><strong>Error Recovery:<\/strong> Execute custom code when exceptions occur.<\/li>\n\n\n\n<li><strong>Code Reusability:<\/strong> Centralize event handling instead of writing repetitive log code.<\/li>\n<\/ul>\n\n\n\n<p>When you integrate Listeners using WebDriver into your Selenium Test Automation framework, you create an intelligent testing environment that self-monitors and self-records.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Example<\/strong><\/h3>\n\n\n\n<p>Imagine a tester runs 200 automated UI tests overnight. The next morning, 15 tests fail. Without listeners, debugging would mean manually reviewing logs and screenshots. But with Listeners using WebDriver, the system automatically records which action failed and captures screenshots for each failure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Understanding the WebDriverEventListener Interface<\/strong><\/h2>\n\n\n\n<p>The <strong><code>WebDriverEventListener<\/code><\/strong> interface in Selenium contains several methods that correspond to browser actions. You can override these methods to define custom behaviors.<\/p>\n\n\n\n<p>Below are some commonly used methods:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Method<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>beforeClickOn(WebElement element, WebDriver driver)<\/code><\/td><td>Executes before clicking an element<\/td><\/tr><tr><td><code>afterClickOn(WebElement element, WebDriver driver)<\/code><\/td><td>Executes after clicking an element<\/td><\/tr><tr><td><code>beforeNavigateTo(String url, WebDriver driver)<\/code><\/td><td>Runs before browser navigates to a new URL<\/td><\/tr><tr><td><code>afterNavigateTo(String url, WebDriver driver)<\/code><\/td><td>Runs after navigation<\/td><\/tr><tr><td><code>onException(Throwable throwable, WebDriver driver)<\/code><\/td><td>Triggered when an exception occurs<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>These methods form the backbone of Listeners using WebDriver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Setting Up Listeners Using WebDriver: Step-by-Step<\/strong><\/h2>\n\n\n\n<p>Let\u2019s go hands-on. Below is a step-by-step guide on how to create and use Listeners using WebDriver in a real Selenium automation testing framework.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Create a Listener Class<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">import org.openqa.selenium.*;<br>import org.openqa.selenium.support.events.WebDriverEventListener;<br><br>public class MyEventListener implements WebDriverEventListener {<br><br>    @Override<br>    public void beforeClickOn(WebElement element, WebDriver driver) {<br>        System.out.println(\"Before clicking on: \" + element.toString());<br>    }<br><br>    @Override<br>    public void afterClickOn(WebElement element, WebDriver driver) {<br>        System.out.println(\"Clicked on: \" + element.toString());<br>    }<br><br>    @Override<br>    public void onException(Throwable error, WebDriver driver) {<br>        System.out.println(\"Exception occurred: \" + error.getMessage());<br>    }<br><br>    \/\/ Implement other methods as needed...<br>}<\/pre>\n\n\n\n<p>This class defines custom actions to perform during each WebDriver event. With these Listeners using WebDriver, you gain complete visibility of your test actions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Register the Listener with EventFiringWebDriver<\/strong><\/h3>\n\n\n\n<p>To make your listener functional, you must register it with Selenium\u2019s <code>EventFiringWebDriver<\/code> class.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.chrome.ChromeDriver;\nimport org.openqa.selenium.support.events.EventFiringWebDriver;\n\npublic class TestWithListener {\n    public static void main(String[] args) {\n        WebDriver driver = new ChromeDriver();\n        EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);\n        MyEventListener handler = new MyEventListener();\n\n        eventDriver.register(handler);\n        eventDriver.get(\"https:\/\/www.h2kinfosys.com\");\n        eventDriver.findElement(By.linkText(\"Courses\")).click();\n\n        eventDriver.quit();\n    }\n}\n<\/pre>\n\n\n\n<p>Now your test will automatically print logs or handle exceptions whenever events occur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Common Use Cases of Listeners Using WebDriver<\/strong><\/h2>\n\n\n\n<p>Listeners bring immense flexibility to <a href=\"https:\/\/www.h2kinfosys.com\/blog\/tag\/selenium-automation-testing\/\" data-type=\"post_tag\" data-id=\"2008\">Selenium automation testing<\/a>. Let\u2019s explore where Listeners using WebDriver truly shine.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>a. Logging Browser Actions<\/strong><\/h3>\n\n\n\n<p>Track every click, navigation, and input field entry to create structured test logs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>b. Capturing Screenshots on Failure<\/strong><\/h3>\n\n\n\n<p>Integrate screenshot capture into <code>onException()<\/code> method for automatic visual debugging.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>c. Real-Time Reporting<\/strong><\/h3>\n\n\n\n<p>Use listeners to integrate with tools like ExtentReports or Allure for detailed execution reports.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>d. Alert Handling<\/strong><\/h3>\n\n\n\n<p>Automatically dismiss or accept alerts when they appear during tests.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>e. Measuring Performance<\/strong><\/h3>\n\n\n\n<p>Capture timestamps before and after events to calculate element loading time.<\/p>\n\n\n\n<p>Each use case adds value by increasing observability and control exactly what modern Selenium Test Automation frameworks require.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. Best Practices When Using Listeners Using WebDriver<\/strong><\/h2>\n\n\n\n<p>While Listeners using WebDriver offer great flexibility, improper use can lead to performance issues. Follow these best practices:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2714 Keep Listeners Lightweight<\/strong><\/h3>\n\n\n\n<p>Avoid adding heavy code (like database operations) inside event methods. Use async logging instead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2714 Don\u2019t Duplicate Logic<\/strong><\/h3>\n\n\n\n<p>Listeners should monitor events, not perform test validations. Keep validations inside test cases.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2714 Separate Concerns<\/strong><\/h3>\n\n\n\n<p>Maintain your Listeners using WebDriver in a separate utility package to keep your framework clean.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2714 Add Conditional Logging<\/strong><\/h3>\n\n\n\n<p>Use flags or environment variables to enable\/disable listeners for different environments (e.g., QA, staging, production).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2714 Combine with Reporting Tools<\/strong><\/h3>\n\n\n\n<p>Integrate Listeners using WebDriver with frameworks like TestNG or JUnit for better report generation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Combining Listeners Using WebDriver with TestNG Listeners<\/strong><\/h2>\n\n\n\n<p>Many Selenium testers use TestNG listeners for test-level events (like <code>onTestStart<\/code> or <code>onTestFailure<\/code>). However, <em>Listeners using WebDriver<\/em> focus on browser-level events.<\/p>\n\n\n\n<p>By combining both, you can create a two-layer listener system:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>WebDriver Listeners<\/strong> track browser actions.<\/li>\n\n\n\n<li><strong>TestNG Listeners<\/strong> track test execution flow.<\/li>\n<\/ul>\n\n\n\n<p>This hybrid approach results in more detailed, readable, and actionable automation reports.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Real-World Example: Debugging Failures Using Listeners Using WebDriver<\/strong><\/h2>\n\n\n\n<p>Let\u2019s take a real-world scenario from an e-commerce testing project.<\/p>\n\n\n\n<p><strong>Scenario:<\/strong><br>You have automated a checkout flow \u2014 login \u2192 select product \u2192 add to cart \u2192 payment \u2192 confirmation. Occasionally, tests fail after payment, with the browser closing prematurely.<\/p>\n\n\n\n<p>By adding Listeners using WebDriver, you can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Capture the last executed step before the crash.<\/li>\n\n\n\n<li>Log the specific element that was being interacted with.<\/li>\n\n\n\n<li>Take a screenshot of the browser state at failure.<\/li>\n<\/ul>\n\n\n\n<p><strong>Code Snippet for Screenshot Handling:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">@Override<br>public void onException(Throwable throwable, WebDriver driver) {<br>    File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);<br>    try {<br>        FileUtils.copyFile(srcFile, new File(\".\/Screenshots\/error.png\"));<br>        System.out.println(\"Screenshot captured due to: \" + throwable.getMessage());<br>    } catch (IOException e) {<br>        e.printStackTrace();<br>    }<br>}<\/pre>\n\n\n\n<p>This makes failure analysis faster, reducing debugging time from hours to minutes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>9. Advantages for Students Taking Selenium Training<\/strong><\/h2>\n\n\n\n<p>Learners in a Selenium course or preparing for test automation certification often struggle with test reporting and debugging. Understanding Listeners using WebDriver bridges this gap.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How It Helps Learners<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Build Robust Frameworks:<\/strong> Learn to design event-driven frameworks.<\/li>\n\n\n\n<li><strong>Gain Debugging Skills:<\/strong> Understand where and why tests fail.<\/li>\n\n\n\n<li><strong>Stand Out in Interviews:<\/strong> Demonstrate expertise beyond basic scripting.<\/li>\n\n\n\n<li><strong>Real-World Relevance:<\/strong> Mimic how enterprise QA teams build large-scale test frameworks.<\/li>\n<\/ul>\n\n\n\n<p>In Selenium automation testing, recruiters value candidates who can explain concepts like Listeners using WebDriver with confidence and practical examples.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>10. Integration with Advanced Tools<\/strong><\/h2>\n\n\n\n<p>The power of Listeners using WebDriver increases when combined with third-party tools and libraries.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>a. Allure Reports<\/strong><\/h3>\n\n\n\n<p>Listeners can push step-by-step test logs to Allure for beautiful visual reports.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>b. ExtentReports<\/strong><\/h3>\n\n\n\n<p>Integrate event logs directly into ExtentReports for detailed execution insights.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>c. Jenkins CI\/CD<\/strong><\/h3>\n\n\n\n<p>In a continuous integration setup, Listeners using WebDriver help identify flaky tests faster by providing contextual logs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>d. Log4j \/ SLF4J<\/strong><\/h3>\n\n\n\n<p>Replace <code>System.out.println()<\/code> with professional logging libraries for production-grade reporting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>11. Common Challenges and Troubleshooting<\/strong><\/h2>\n\n\n\n<p>While using Listeners using WebDriver, you may face a few challenges:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Issue<\/th><th>Possible Cause<\/th><th>Solution<\/th><\/tr><\/thead><tbody><tr><td>Events not firing<\/td><td>Listener not registered properly<\/td><td>Ensure <code>register()<\/code> method is called<\/td><\/tr><tr><td>Duplicate logs<\/td><td>Multiple registrations<\/td><td>Register listener only once per session<\/td><\/tr><tr><td>Performance delay<\/td><td>Too many print statements<\/td><td>Use asynchronous logging<\/td><\/tr><tr><td>Screenshot not captured<\/td><td>Wrong file path or permissions<\/td><td>Verify file directory before saving<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Mastering these minor details helps keep your Selenium Test Automation clean and efficient.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>12. How Listeners Using WebDriver Fit Into an Automation Framework<\/strong><\/h2>\n\n\n\n<p>An ideal Selenium framework includes the following layers:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Base Test Class<\/strong> \u2013 Sets up WebDriver and configurations.<\/li>\n\n\n\n<li><strong>Page Object Classes<\/strong> \u2013 Contain locators and element actions.<\/li>\n\n\n\n<li><strong>Test Scripts<\/strong> \u2013 Contain business logic and assertions.<\/li>\n\n\n\n<li><strong>Listeners Using WebDriver<\/strong> \u2013 Handle runtime events and reporting.<\/li>\n<\/ol>\n\n\n\n<p>By integrating Listeners using WebDriver into this structure, you create a plug-and-play logging system. You can turn it on or off without rewriting test logic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>13. Sample Folder Structure<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">\/src\n   \/main\/java\n       \/listeners\n           MyEventListener.java\n       \/pages\n           LoginPage.java\n       \/tests\n           LoginTest.java\n   \/resources\n       config.properties\n<\/pre>\n\n\n\n<p>Keeping Listeners using WebDriver in a dedicated folder helps maintain separation of concerns and simplifies maintenance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>14. Practical Exercise for Learners<\/strong><\/h2>\n\n\n\n<p>Try this short project to practice Listeners using WebDriver:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a test that visits H2K Infosys\u2019 website.<\/li>\n\n\n\n<li>Use <code>EventFiringWebDriver<\/code> to register your custom listener.<\/li>\n\n\n\n<li>Implement <code>beforeClickOn<\/code> and <code>onException<\/code> methods.<\/li>\n\n\n\n<li>Click on multiple menu links to trigger events.<\/li>\n\n\n\n<li>Observe real-time console logs and screenshots.<\/li>\n<\/ol>\n\n\n\n<p>This simple activity will give you firsthand experience with Listeners using WebDriver and prepare you for real automation challenges.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>15. Future of Selenium Test Automation and Event Listeners<\/strong><\/h2>\n\n\n\n<p>The Selenium ecosystem is evolving fast. With Selenium 4, the EventFiringWebDriver is being replaced by WebDriver listeners in the new event-driven architecture.<\/p>\n\n\n\n<p>This means Listeners using WebDriver will become even more powerful and integrated at the protocol level, improving speed and efficiency.<\/p>\n\n\n\n<p>Professionals who understand these event-driven concepts will stay ahead in the automation testing job market.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>16. Industry Insight: Why Companies Value Event-Driven Testing<\/strong><\/h2>\n\n\n\n<p>According to QA industry reports:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Over 72% of companies now rely on Selenium for test automation.<\/li>\n\n\n\n<li>65% of enterprise frameworks use custom listeners for better reporting.<\/li>\n\n\n\n<li>Automation engineers skilled in Listeners using WebDriver earn 20% higher salaries due to advanced framework design expertise.<\/li>\n<\/ul>\n\n\n\n<p>This shows why understanding event listeners is not optional it\u2019s career-defining for test automation professionals.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>17. Key Takeaways<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Listeners using WebDriver help capture and react to browser events automatically.<\/li>\n\n\n\n<li>They improve debugging, logging, and reporting in Selenium Test Automation.<\/li>\n\n\n\n<li>Use them to record actions, capture screenshots, or handle exceptions.<\/li>\n\n\n\n<li>Combine with <a href=\"https:\/\/en.wikipedia.org\/wiki\/TestNG\" rel=\"nofollow noopener\" target=\"_blank\">TestNG<\/a> and reporting tools for professional-grade frameworks.<\/li>\n\n\n\n<li>Mastering listeners enhances employability and boosts testing productivity.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion: Learn Selenium the Smart Way<\/strong><\/h2>\n\n\n\n<p>Listeners make Selenium frameworks smarter, more reliable, and easier to debug. By mastering <em>Listeners using WebDriver<\/em>, you can build professional-grade frameworks that save time and reduce test failures.<\/p>\n\n\n\n<p>Ready to take your Selenium Test Automation skills to the next level?<br>Join H2K Infosys\u2019 Selenium training today for real-time projects, industry-based assignments, and hands-on learning that prepares you for global automation roles.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: The Hidden Power Behind Selenium Automation Testing In every successful Selenium Test Automation framework, there\u2019s one secret ingredient that separates beginners from professionals Listeners using WebDriver. Automation testing is all about precision, repeatability, and efficiency. But what happens when tests fail unexpectedly? How do you know which step caused the issue? That\u2019s where Listeners [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":31271,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[2,5,3],"class_list":["post-42","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-selenium-skill-test","tag-selenium-online-quiz","tag-selenium-online-test","tag-selenium-skill-test"],"_links":{"self":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts\/42","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/comments?post=42"}],"version-history":[{"count":4,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts\/42\/revisions"}],"predecessor-version":[{"id":31272,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts\/42\/revisions\/31272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/media\/31271"}],"wp:attachment":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/media?parent=42"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/categories?post=42"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/tags?post=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}