{"id":369,"date":"2022-04-12T23:08:02","date_gmt":"2022-04-12T23:08:02","guid":{"rendered":"http:\/\/rainforestqa.com\/selenium-disadvantages\/"},"modified":"2025-03-18T13:12:18","modified_gmt":"2025-03-18T13:12:18","slug":"selenium-disadvantages","status":"publish","type":"post","link":"https:\/\/www.rainforestqa.com\/blog\/selenium-disadvantages","title":{"rendered":"Selenium disadvantages: Why QA teams are going codeless"},"content":{"rendered":"\n<p>Selenium is the oldest and most well-recognized automated testing tool for web apps, so a lot of software teams try it out when they first experiment with automated testing. But most teams quickly run into three Selenium disadvantages:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>It doesn\u2019t truly test the user interface (UI)<\/strong>\u2014which is what your users actually interact with.<\/li>\n\n\n\n<li><strong>Writing and maintaining test scripts is very time-consuming and requires specialized coding skills. <\/strong>It\u2019s not friendly to beginners.<\/li>\n\n\n\n<li><strong>Identifying why a test failed can also be time-consuming and complicated.<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Because of these challenges, many software companies that use Selenium find testing to be a huge drain on time, effort, and resources. That\u2019s why we designed Rainforest QA\u2014to solve the limitations of Selenium and make QA easy to scale and maintain.<\/p>\n\n\n\n<p>In this post, we\u2019ll discuss each of the disadvantages of Selenium in detail and show how Rainforest QA solves those problems.<\/p>\n\n\n\n<p><em><a href=\"https:\/\/www.rainforestqa.com\/talk-to-sales\">Talk to us<\/a> about setting up a Rainforest plan that fits your testing needs. <\/em><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rainforestqa.com\/blog\/selenium-disadvantages\/#Disadvantage_1_Selenium_Only_Tests_the_Underlying_Code_Not_the_Visual_Layer\" >Disadvantage #1: Selenium Only Tests the Underlying Code, Not the Visual Layer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rainforestqa.com\/blog\/selenium-disadvantages\/#Disadvantage_2_Writing_and_Maintaining_Selenium_Tests_Takes_a_Long_Time_and_Only_Developers_Can_Do_It\" >Disadvantage #2: Writing and Maintaining Selenium Tests Takes a Long Time and Only Developers Can Do It<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rainforestqa.com\/blog\/selenium-disadvantages\/#Disadvantage_3_Debugging_Test_Failures_in_Selenium_Takes_Too_Long\" >Disadvantage #3: Debugging Test Failures in Selenium Takes Too Long<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rainforestqa.com\/blog\/selenium-disadvantages\/#3_More_Rainforest_Features_That_Make_It_Easy_to_Achieve_Better_Test_Coverage_with_Less_Time_and_Effort\" >3 More Rainforest Features That Make It Easy to Achieve Better Test Coverage with Less Time and Effort<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Disadvantage_1_Selenium_Only_Tests_the_Underlying_Code_Not_the_Visual_Layer\"><\/span>Disadvantage #1: Selenium Only Tests the Underlying Code, Not the Visual Layer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Selenium tests search for element locators in the underlying code of an application in order to interact with web elements to perform test steps. Usually, these steps involve interacting with the element to move the test forward (e.g., clicking the submit button) or verifying the presence of an element. You can also add test steps that verify various visual settings of the element, such as size, position, or color. If the element locator is present and the settings are correct, the test should pass.&nbsp;<\/p>\n\n\n\n<p>However, this approach to test automation has two inherent downsides:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sometimes a Selenium test will pass even though there\u2019s a bug on the UI that a <em>real<\/em> user would immediately notice. <\/strong>This happens because the locator is present (with the correct settings) in the underlying code but a visual bug is causing the element to be hidden or rendered incorrectly on the UI. For example, a pop up could be covering the element you\u2019re testing for or the element could be rendered off screen. This makes Selenium unreliable for catching <a href=\"https:\/\/www.rainforestqa.com\/blog\/visual-regression-testing-tools\/\" target=\"_blank\" rel=\"noopener\">visual regressions<\/a> or visual bugs.<\/li>\n\n\n\n<li><strong>Sometimes Selenium tests will fail even though nothing has been changed in the UI. <\/strong>This is because even the <em>slightest<\/em> change in an element locator can break a Selenium test. For example, let\u2019s say your team renamed the locator during an update but didn\u2019t update the test, or accidentally missed a letter in the locator when creating the test. Either way, a Selenium test would fail because it couldn\u2019t find an exact match\u2014even though the element would look and act the same way on the visual layer.<\/li>\n<\/ul>\n\n\n\n<p>While there are workarounds to help ensure you catch visual bugs <a href=\"https:\/\/www.rainforestqa.com\/blog\/selenium-disadvantages#disadvantage\">(more on this in a later section)<\/a>, in the end, Selenium tests make <em>assumptions<\/em> about elements on the UI rather than testing what real users will actually see.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Solution: Rainforest Tests Interact with the Visual Layer to Validate the <em>True<\/em> User Experience&nbsp;<\/h3>\n\n\n\n<p>Rainforest QA tests interact with the visual layer of your application. Instead of searching for element locators in the underlying code of an application, Rainforest tests search for elements (like buttons or form fields) based on a matching combination of pixels in the UI.&nbsp;<\/p>\n\n\n\n<p><em>We provide a detailed tutorial about how to write a Rainforest test <\/em><a href=\"https:\/\/www.rainforestqa.com\/blog\/selenium-disadvantages#solution\"><em>in a later section<\/em><\/a><em>.&nbsp;<\/em><\/p>\n\n\n\n<p>This is the closest to how a real human would interact with the application because the test only uses what\u2019s available visually and doesn\u2019t touch the underlying code. This also means Rainforest tests won\u2019t break because of minor changes to element locators that don\u2019t affect the UI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Disadvantage_2_Writing_and_Maintaining_Selenium_Tests_Takes_a_Long_Time_and_Only_Developers_Can_Do_It\"><\/span>Disadvantage #2: Writing and Maintaining Selenium Tests Takes a Long Time and Only Developers Can Do It<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Even though Selenium supports many programming languages, developers using Selenium usually find that writing and maintaining test scripts is very time-consuming. Not only do they have to learn a new testing framework, but each individual test script requires a lot of set up and coding. To write Selenium test scripts:<strong><br><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>You\u2019ll have to write code for each aspect of each element you want to test.<\/strong> For example, if you want to verify that a button is visible, is located next to a block of text and has certain visual attributes (shape, color, size, etc.), each of those aspects will likely need to be verified individually.<\/li>\n\n\n\n<li><strong>You\u2019ll most likely need to add custom attributes to each element of the application you want to test. <\/strong>Modern website and application builders generate code that can be very complex which makes it hard to pinpoint exactly which piece of code represents an element. Because of this, many teams add custom attributes that make elements easier to find. This is fairly easy to add as you build a new feature, but adding it to software that\u2019s already been developed can be a massive chore.<\/li>\n\n\n\n<li>\u200d<strong>You\u2019ll probably need to cobble together a bunch of plug-ins to make failure categorization easier and to make tests more resilient to changes in the underlying code. <\/strong>Selenium doesn\u2019t offer any built-in features to help with these issues, but since it\u2019s an open-source tool, there are a lot of plug-ins available to address specific shortcomings. By engaging with the larger testing community, you can find plug-ins and learn techniques that other teams have used to make their tests less sensitive to changes in the web application and to help categorize test failures, but if your plug-in stops working, there\u2019s no support team available to help you troubleshoot the problem. And most of these workarounds ultimately require adding even more code to each test.<\/li>\n<\/ul>\n\n\n\n<p>There\u2019s a Selenium WebDriver that supports multiple programming languages (including Java, Python, Ruby, C#, JavaScript, Perl, and PHP) and a record-and-playback tool (called Selenium IDE) which can make it easier to write test scripts. In the end, however, you\u2019ll still end up writing or generating test scripts built on code. Whenever a test fails or needs to be updated, you\u2019ll still have a ton of code to sort through.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Solution: Rainforest\u2019s No-Code Editor Lets Anyone Create and Maintain Tests in Minutes<\/h3>\n\n\n\n<p>Rainforest QA is a true no-code platform that lets anyone create (and maintain) tests in a matter of minutes whether they have a technical background or not.&nbsp;<\/p>\n\n\n\n<p>To create (or maintain) a test step in Rainforest, you choose from a dropdown menu of preset actions\u2014such as \u2018click\u2019, \u2018fill\u2019, or \u2018scroll. Then, you take a screenshot of the element you want to apply the action to by clicking and dragging the mouse over the element.&nbsp;<\/p>\n\n\n\n<p><strong>To verify the visibility, color, shape, etc. of an element, you only need the <em>one<\/em> screenshot.<\/strong>&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/uploads-ssl.webflow.com\/60da68c37e5767dfb65004c0\/61b250fa0b013466232fafc2_Add%20a%20Click%20Action.gif\" alt=\"Adding a Click Action in Rainforest QA: Try for Free Button example\"\/><\/figure>\n\n\n\n<p>Because Rainforest tests interact with the UI directly, you won\u2019t have to add any custom attributes to your application before writing tests.&nbsp;<\/p>\n\n\n\n<p>Additionally, Rainforest QA has built-in features to help make tests more resilient to changes in the application. Not only are Rainforest tests immune to minor changes in the underlying code of the application that don\u2019t affect the UI, but you can also choose to use <a href=\"https:\/\/help.rainforestqa.com\/docs\/text-matching\" target=\"_blank\" rel=\"noopener\">text matching<\/a> for any test step. With text matching turned on, Rainforest will search for the text content of an element rather than just the appearance of the element.&nbsp;<\/p>\n\n\n\n<p>For example, both of the buttons below say <strong>\u201cBuy Now\u201d<\/strong> even though their appearances (i.e., color and shape) are different.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/uploads-ssl.webflow.com\/60da68c37e5767dfb65004c0\/6123deea5ff4fd3b69f240fe_buy-now.png\" alt=\"Buy Now Button: Initial Button vs Updated Button\"\/><\/figure>\n\n\n\n<p>\u200d<strong>If text matching is enabled, the test will pass with<em> either<\/em> version of the button. <\/strong>If text matching is not enabled, it will only pass if the original screenshot matches the current version being tested. This gives you the flexibility to decide for each test step whether you want to test the entire design of the element or just the content.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Disadvantage_3_Debugging_Test_Failures_in_Selenium_Takes_Too_Long\"><\/span>Disadvantage #3: Debugging Test Failures in Selenium Takes Too Long<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>After a test run, you\u2019ll want to see which tests passed and which ones failed. Selenium doesn\u2019t have any reporting capabilities for test results. Instead, you\u2019ll have to click into each test individually to see if it passed or failed, or add on other test management tools, such as TestNG, JUnit, or Maven.<\/p>\n\n\n\n<p>Once you know which tests have failed, you\u2019ll need to figure out <em>why<\/em> they failed. Selenium doesn\u2019t offer any built-in features to help you identify why a test failed, which means it could take hours to find the cause of the failure.&nbsp;<\/p>\n\n\n\n<p>You can add additional code so that a snapshot of the underlying code is automatically taken at the point of failure. However, in many situations, tests fail because of a bug in a previous part of the test. In these situations, one snapshot at the point of break won\u2019t be enough to tell you why the failure occurred.&nbsp;<\/p>\n\n\n\n<p>For example, let\u2019s say you want to verify that a <strong>\u2018Download was successful\u2019<\/strong> message appears at the end of your test. A snapshot of the underlying code could tell you that the message didn\u2019t appear but it can\u2019t tell you if that\u2019s because the download itself was unsuccessful or if an error with the confirmation message is the issue.<\/p>\n\n\n\n<p>With Selenium, you\u2019ll most likely end up sorting through tons of code to find the small errors that caused the failure. This is often too slow and labor intensive for teams that need to release quickly and frequently.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Solution: Rainforest\u2019s Video Replays Let Anyone Quickly Understand Test Failures<\/h3>\n\n\n\n<p>Rainforest QA automatically creates test reports for each test run that clearly show you which tests passed, which ones failed, and the run history for each test.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/uploads-ssl.webflow.com\/60da68c37e5767dfb65004c0\/6255b4f04f4abf075f63e47f_chat-test-results.png\" alt=\"Chat Test Results Breakdown in Rainforest QA\"\/><\/figure>\n\n\n\n<p>Rainforest also automatically records a video of every test whether it passes or fails. This lets you view the failed test step and every step leading up to it. You can also compare a failed test to a successful test, which can be really helpful when the reason for a failure isn\u2019t immediately obvious.<\/p>\n\n\n\n<p>Failed test steps get highlighted in red along with a brief explanation of why the step failed and an<strong> \u2018investigate action\u2019<\/strong> button.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/uploads-ssl.webflow.com\/60da68c37e5767dfb65004c0\/623e747bb3c7980ae0cc5e81_chat-test-run-action-failed.png\" alt=\"Chat Test: Action Failed in Rainforest QA\"\/><\/figure>\n\n\n\n<p>The \u2018investigate action\u2019 button lets you see more detail about the failure including the closest match found for both the appearance of the original screenshot and the text content (if text matching was enabled).&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/uploads-ssl.webflow.com\/60da68c37e5767dfb65004c0\/621539aefa399b3af9326251_attempted-to-find-match.png\" alt=\"Attempted to find a match vs Closest Match Identified example in Rainforest QA\"\/><\/figure>\n\n\n\n<p>Then, if there\u2019s a real bug, anyone can automatically send a ticket to Jira for the development team to fix the bug. The ticket will include the failed test step, a screenshot of the failed test step, HTTP logs, and a link to the full test results and video recording in Rainforest.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_More_Rainforest_Features_That_Make_It_Easy_to_Achieve_Better_Test_Coverage_with_Less_Time_and_Effort\"><\/span>3 More Rainforest Features That Make It Easy to Achieve Better Test Coverage with Less Time and Effort<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Test Actions Outside the Browser<\/h3>\n\n\n\n<p>Selenium automates web browsers, which means each test is limited to testing within a single browser tab. For many teams, this means they won\u2019t be able to create test cases for some of the critical functions of their app. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Downloading a desktop application:<\/strong> If your product is an application that needs to be downloaded, you\u2019ll need a test that can interact with the operating system and homescreen of the device in order to test whether or not customers will be able to successfully download, install, and open the app. <em>Note: Teams using Selenium would have to use another tool, like UFT (formerly QTP) to complete these test cases.<\/em>\u200d<\/li>\n\n\n\n<li><strong>Installing a browser extension:<\/strong> If your product relies on users installing a browser extension, you\u2019ll need a test that can interact with browser settings. <strong>\u200d<\/strong><\/li>\n\n\n\n<li><strong>Testing interactions between two users:<\/strong> If your product includes any kind of messaging app, there are many scenarios where you may need to open two browsers within one test and actually test the sending and receiving of messages between those two users.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Rather than just automating browsers, Rainforest QA automates entire virtual machines running operating systems including Windows, macOS, iOS, and Android. Rainforest tests can interact with anything you see on a screen, which means you\u2019ll be able to perform any of the operations described above. <a href=\"https:\/\/www.youtube.com\/watch?v=0-vHwl6vNAw\" target=\"_blank\" rel=\"noopener\">Here\u2019s an example video<\/a> of how to create a test that saves a file to the desktop from one location then uploads the file to Google Drive.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Manage Manual and Automated Testing from the Same Platform<\/h3>\n\n\n\n<p>Automation is the fastest, most effective way to run software testing in most situations. But there are some <a href=\"https:\/\/www.rainforestqa.com\/blog\/manual-vs-automated-testing\" target=\"_blank\" rel=\"noopener\">tests that are better suited for manual testing<\/a>. A test is better suited for manual testing if any of the steps require subjective interpretation or are subject to frequent change (as is the case with many test cases that cover brand-new features).&nbsp;<\/p>\n\n\n\n<p>Most teams using Rainforest QA find that automated testing can be handled so efficiently that they have no problem handling a few manual tests in-house. But, Rainforest QA also offers the fastest <a href=\"https:\/\/www.rainforestqa.com\/blog\/manual-software-testing-services\/\" target=\"_blank\" rel=\"noopener\">manual testing available<\/a> via our community of QA experts.&nbsp;<\/p>\n\n\n\n<p>Any test written in the Rainforest visual editor can also be sent to the Rainforest community for manual testing, where results will be returned in 17 minutes on average.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Easily Scale Up Testing without Adding Other Tools<\/h3>\n\n\n\n<p>While the Selenium automation tool is open-source, it only provides a way for you to write and run tests on your own devices. If you want to run multiple tests simultaneously, manage a large number of tests, or simplify communication with the QA team, you\u2019ll eventually need to add additional (paid) tools and services.&nbsp;<\/p>\n\n\n\n<p>Rainforest QA is equipped with everything you\u2019ll need to run and manage a full suite of automated and manual tests, including:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Easy test suite management.<\/li>\n\n\n\n<li>A network of virtual machines to support parallel testing (eliminating the need for services like Selenium Grid, Sauce Labs, or BrowserStack).<\/li>\n\n\n\n<li>Access to multiple operating systems and browsers, including current and older versions of Safari, Chrome, Firefox, Internet Explorer, etc.<\/li>\n\n\n\n<li>Built-in test data like randomized email addresses, credit card numbers, names, etc.<\/li>\n\n\n\n<li>An API to integrate your testing process into any software stack.<\/li>\n\n\n\n<li>Easy integration into CI\/CD pipelines with our CLI, GitHub Action, or CircleCI Orb.<\/li>\n\n\n\n<li>Integrations with Slack, Microsoft Teams, and email, so your team can get real-time notifications of test failures and other updates.<\/li>\n\n\n\n<li>Unlimited team members.<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/www.rainforestqa.com\/talk-to-sales\">Talk to us<\/a> about setting up a Rainforest plan that fits your testing needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post, we discuss three disadvantages of Selenium in detail and provide a practical solution for solving them.<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-369","post","type-post","status-publish","format-standard","hentry","category-test-automation"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/comments?post=369"}],"version-history":[{"count":11,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/369\/revisions"}],"predecessor-version":[{"id":3067,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/369\/revisions\/3067"}],"wp:attachment":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/media?parent=369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/categories?post=369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/tags?post=369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}