{"id":353,"date":"2022-07-11T05:08:04","date_gmt":"2022-07-11T05:08:04","guid":{"rendered":"https:\/\/www.testleaf.com\/blog\/?p=353"},"modified":"2026-03-06T14:07:34","modified_gmt":"2026-03-06T08:37:34","slug":"the-untold-story-stale-element-reference-exception-in-selenium","status":"publish","type":"post","link":"https:\/\/www.testleaf.com\/blog\/the-untold-story-stale-element-reference-exception-in-selenium\/","title":{"rendered":"The Untold Story \u2014 Stale Element Reference Exception in Selenium"},"content":{"rendered":"<div style=\"margin-top: 0px; margin-bottom: 0px;\" class=\"sharethis-inline-share-buttons\" ><\/div><!--[if lt IE 9]><script>document.createElement('audio');<\/script><![endif]-->\n<audio class=\"wp-audio-shortcode\" id=\"audio-353-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/The-Untold-Story-\u2014-Stale-Element-Reference-Exception-in-Selenium.mp3?_=1\" \/><a href=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/The-Untold-Story-\u2014-Stale-Element-Reference-Exception-in-Selenium.mp3\">https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/The-Untold-Story-\u2014-Stale-Element-Reference-Exception-in-Selenium.mp3<\/a><\/audio>\n<p>&nbsp;<\/p>\n<p>The<strong><b> StaleElementReferenceException <\/b><\/strong>is one of the most intriguing exceptions that you would have experienced in your selenium tests. Hope this post can help you resolve this exception from reoccurring in your tests.<\/p>\n<p data-start=\"2747\" data-end=\"3120\">A <strong>StaleElementReferenceException<\/strong> occurs when Selenium tries to use a <strong>WebElement<\/strong> that no longer matches the current DOM\u2014usually because the page re-rendered, refreshed, or replaced the element after you located it. Fix it by re-finding elements just-in-time, waiting for stable states, and using a small retry only for stale failures\u2014especially in CI.<\/p>\n<h3 data-start=\"3122\" data-end=\"3150\"><strong>Key Takeaways<\/strong><\/h3>\n<ul data-start=\"3151\" data-end=\"3349\">\n<li data-start=\"3151\" data-end=\"3212\">\n<p data-start=\"3153\" data-end=\"3212\">Store locators (<code data-start=\"3169\" data-end=\"3173\">By<\/code>) and find elements only when needed.<\/p>\n<\/li>\n<li data-start=\"3213\" data-end=\"3279\">\n<p data-start=\"3215\" data-end=\"3279\">Wait for meaningful states (clickable\/updated list), not time.<\/p>\n<\/li>\n<li data-start=\"3280\" data-end=\"3349\">\n<p data-start=\"3282\" data-end=\"3349\">Add screenshots\/logs and a small stale-only retry for CI stability.<\/p>\n<\/li>\n<\/ul>\n<p>Stale element issues show up more in CI and cloud grids because timing differs by region (network latency, slower runners, different browser\/viewport defaults). If your users are in India or global regions, UI can also re-render due to cookie banners, locale selectors, and A\/B experiments\u2014so rely on stable waits + re-locate patterns instead of sleeps.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of 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.testleaf.com\/blog\/the-untold-story-stale-element-reference-exception-in-selenium\/#What_is_StaleElementReferenceException\" >What is StaleElementReferenceException?<\/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.testleaf.com\/blog\/the-untold-story-stale-element-reference-exception-in-selenium\/#FAQs\" >FAQs<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"What_is_StaleElementReferenceException\"><\/span><strong><em><b><i>What is StaleElementReferenceException?<\/i><\/b><\/em><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Per Selenium Webdriver\u00a0<a href=\"https:\/\/www.selenium.dev\/selenium\/docs\/api\/java\/org\/openqa\/selenium\/StaleElementReferenceException.html\"><u>documentation<\/u><\/a>, the reference to an element is now \u201cstale\u201d \u2014 the element no longer appears on the DOM of the page. Simply put, the element you located using the findElement method disappeared when you started interacting with it.<\/p>\n<p>Let us understand some insights about how Selenium WebDriver handles this scenario:<\/p>\n<h3><strong><b>WebDriver Internals<\/b><\/strong><\/h3>\n<p>When you write the syntax to perform an action using Selenium WebDriver; it internally calls the WebDriver API associated with that method.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-356 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/Way-of-Working-\u2014-Selenium-WebDriver.png\" alt=\"Selenium Webdriver Python Tutorial For Web Automation\" width=\"945\" height=\"148\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/Way-of-Working-\u2014-Selenium-WebDriver.png 945w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/Way-of-Working-\u2014-Selenium-WebDriver-300x47.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/Way-of-Working-\u2014-Selenium-WebDriver-768x120.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/Way-of-Working-\u2014-Selenium-WebDriver-150x23.png 150w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><br \/>\nWay of Working \u2014 Selenium WebDriver<\/p>\n<h3><strong><b>WebDriver Method<\/b><\/strong><\/h3>\n<p>For example, if you like to look up an element in the browser using Selenium WebDriver in Java, the syntax looks following:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-357 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/WebDriver-Method.png\" alt=\"Selenium Webdriver Python Tutorial For Web Automation\" width=\"945\" height=\"92\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/WebDriver-Method.png 945w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/WebDriver-Method-300x29.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/WebDriver-Method-768x75.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/WebDriver-Method-150x15.png 150w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/>Locate an Element using Id as Selector<\/p>\n<h3><strong><b>API Request<\/b><\/strong><\/h3>\n<p>Now, the java method internally calls the WebDriver API \u2014 the post request through passing the locator information in the body like below:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-358 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Request.png\" alt=\"Selenium Webdriver Python Tutorial For Web Automation\" width=\"929\" height=\"376\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Request.png 929w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Request-300x121.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Request-768x311.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Request-150x61.png 150w\" sizes=\"(max-width: 929px) 100vw, 929px\" \/>FindElement request posted through PostMan<\/p>\n<p>In the above request, localhost points to chrome driver running as a local server in port 9515.<\/p>\n<p><em><i>Note<\/i><\/em>: When running your tests from your IDE like eclipse, Selenium finds the free port at runtime and that may not be the 9515, which is the default port.<\/p>\n<h3><strong><b>API Response<\/b><\/strong><\/h3>\n<p>The API response from the chrome driver server on a successful match will return the WebElement, and the response will be like the below:<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-359 size-full\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Response.png\" alt=\"Selenium Webdriver Python Tutorial For Web Automation\" width=\"781\" height=\"523\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Response.png 781w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Response-300x201.png 300w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Response-768x514.png 768w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2022\/07\/API-Response-150x100.png 150w\" sizes=\"(max-width: 781px) 100vw, 781px\" \/><span style=\"font-size: 16px;\">Response with Element Information<\/span><\/p>\n<p>Here, you will find the element information with a unique identifier for every session for that requested DOM. Note: The element information will differ when the page is reloaded or navigated from different sessions.<\/p>\n<p>Learn more about <a href=\"http:\/\/testleaf.com\">software testing courses<\/a> from Testleaf<\/p>\n<h2 data-start=\"3356\" data-end=\"3385\"><span class=\"ez-toc-section\" id=\"FAQs\"><\/span><strong>FAQs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\t<div class=\"tlfaq\" id=\"tlfaq-1311de53-01e2-413d-b3ff-b73ab3f71210\"\n\t     data-single-open=\"1\">\n\t\t\n\t\t<div class=\"tlfaq__items\" role=\"region\" aria-label=\"FAQ\">\n\t\t\t\t\t\t\t<details class=\"tlfaq__item\" open id=\"tlfaq-1311de53-01e2-413d-b3ff-b73ab3f71210-0\">\n\t\t\t\t\t<summary class=\"tlfaq__question\">\n\t\t\t\t\t\t<span class=\"tlfaq__qtext\">What causes stale element reference exception in Selenium?<\/span>\n\t\t\t\t\t\t<span class=\"tlfaq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<\/summary>\n\t\t\t\t\t<div class=\"tlfaq__answer\">\n\t\t\t\t\t\tA stale element reference exception occurs when the DOM changes and the previously located element is removed, refreshed, or replaced before Selenium interacts with it.\t\t\t\t\t<\/div>\n\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t<details class=\"tlfaq__item\"  id=\"tlfaq-1311de53-01e2-413d-b3ff-b73ab3f71210-1\">\n\t\t\t\t\t<summary class=\"tlfaq__question\">\n\t\t\t\t\t\t<span class=\"tlfaq__qtext\">How do I fix stale element reference exception?<\/span>\n\t\t\t\t\t\t<span class=\"tlfaq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<\/summary>\n\t\t\t\t\t<div class=\"tlfaq__answer\">\n\t\t\t\t\t\tTo fix a stale element reference exception, re-locate the element, wait for the updated page state, and retry the action once or twice only when the stale exception occurs.\t\t\t\t\t<\/div>\n\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t<details class=\"tlfaq__item\"  id=\"tlfaq-1311de53-01e2-413d-b3ff-b73ab3f71210-2\">\n\t\t\t\t\t<summary class=\"tlfaq__question\">\n\t\t\t\t\t\t<span class=\"tlfaq__qtext\">Why does stale element happen more in CI than locally?<\/span>\n\t\t\t\t\t\t<span class=\"tlfaq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<\/summary>\n\t\t\t\t\t<div class=\"tlfaq__answer\">\n\t\t\t\t\t\tStale element exceptions happen more often in CI because CI environments are usually slower, and timing differences make UI re-renders or asynchronous updates occur between locating and interacting with an element.\t\t\t\t\t<\/div>\n\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t<details class=\"tlfaq__item\"  id=\"tlfaq-1311de53-01e2-413d-b3ff-b73ab3f71210-3\">\n\t\t\t\t\t<summary class=\"tlfaq__question\">\n\t\t\t\t\t\t<span class=\"tlfaq__qtext\">Should I use Thread.sleep() to avoid stale element?<\/span>\n\t\t\t\t\t\t<span class=\"tlfaq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<\/summary>\n\t\t\t\t\t<div class=\"tlfaq__answer\">\n\t\t\t\t\t\tNo. You should avoid using Thread.sleep() for stale element issues. Instead, use explicit waits for conditions like element clickability, list updates, or spinner disappearance.\t\t\t\t\t<\/div>\n\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t<details class=\"tlfaq__item\"  id=\"tlfaq-1311de53-01e2-413d-b3ff-b73ab3f71210-4\">\n\t\t\t\t\t<summary class=\"tlfaq__question\">\n\t\t\t\t\t\t<span class=\"tlfaq__qtext\">Can Page Object Model cause stale elements?<\/span>\n\t\t\t\t\t\t<span class=\"tlfaq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<\/summary>\n\t\t\t\t\t<div class=\"tlfaq__answer\">\n\t\t\t\t\t\tYes. Page Object Model can cause stale element issues if WebElements are cached. It is better to store locators and fetch elements only at the time of performing an action.\t\t\t\t\t<\/div>\n\t\t\t\t<\/details>\n\t\t\t\t\t\t\t\t<details class=\"tlfaq__item\"  id=\"tlfaq-1311de53-01e2-413d-b3ff-b73ab3f71210-5\">\n\t\t\t\t\t<summary class=\"tlfaq__question\">\n\t\t\t\t\t\t<span class=\"tlfaq__qtext\">How do I debug stale element errors faster?<\/span>\n\t\t\t\t\t\t<span class=\"tlfaq__icon\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t<\/summary>\n\t\t\t\t\t<div class=\"tlfaq__answer\">\n\t\t\t\t\t\tTo debug stale element errors faster, capture screenshots and logs, identify what triggered the DOM change such as a re-render or refresh, and then apply a re-find with an explicit wait before retrying the action.\t\t\t\t\t<\/div>\n\t\t\t\t<\/details>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<script type=\"application\/ld+json\">\n\t\t\t\t{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What causes stale element reference exception in Selenium?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A stale element reference exception occurs when the DOM changes and the previously located element is removed, refreshed, or replaced before Selenium interacts with it.\"}},{\"@type\":\"Question\",\"name\":\"How do I fix stale element reference exception?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"To fix a stale element reference exception, re-locate the element, wait for the updated page state, and retry the action once or twice only when the stale exception occurs.\"}},{\"@type\":\"Question\",\"name\":\"Why does stale element happen more in CI than locally?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Stale element exceptions happen more often in CI because CI environments are usually slower, and timing differences make UI re-renders or asynchronous updates occur between locating and interacting with an element.\"}},{\"@type\":\"Question\",\"name\":\"Should I use Thread.sleep() to avoid stale element?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. You should avoid using Thread.sleep() for stale element issues. Instead, use explicit waits for conditions like element clickability, list updates, or spinner disappearance.\"}},{\"@type\":\"Question\",\"name\":\"Can Page Object Model cause stale elements?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Page Object Model can cause stale element issues if WebElements are cached. It is better to store locators and fetch elements only at the time of performing an action.\"}},{\"@type\":\"Question\",\"name\":\"How do I debug stale element errors faster?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"To debug stale element errors faster, capture screenshots and logs, identify what triggered the DOM change such as a re-render or refresh, and then apply a re-find with an explicit wait before retrying the action.\"}}]}\t\t\t<\/script>\n\t\t\t<\/div>\n\t\n<h5><strong>We Also Provide Training In:<\/strong><\/h5>\n<ul>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/selenium-automation-certification-training-course.html\"><strong>Advanced Selenium Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/playwright.html\"><strong>Playwright Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/genai-qa-engineers-training-course.html\"><strong>Gen AI Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/aws-cloud-architect-certification-training-course.html\"><strong>AWS Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/rest-api-testing-certification-training-course.html\"><strong>REST API Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/full-stack-developer-certification-training-course.html\"><strong>Full Stack Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/appium-mobile-automation-certification-training-course.html\"><strong>Appium Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/dev-ops-master-certification-training-course.html\"><strong>DevOps Training<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.testleaf.com\/course\/apache-jmeter-testing-training-course.html\"><strong>JMeter Performance Training<\/strong><\/a><\/li>\n<\/ul>\n<h6><strong>Author\u2019s Bio<\/strong>:<\/h6>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2404 alignleft\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2023\/04\/Untitled-design.png\" sizes=\"(max-width: 250px) 100vw, 250px\" srcset=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2023\/04\/Untitled-design.png 250w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2023\/04\/Untitled-design-150x150.png 150w, https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2023\/04\/Untitled-design-96x96.png 96w\" alt=\"\" width=\"250\" height=\"250\" \/><\/p>\n<p>As CEO of TestLeaf, I\u2019m dedicated to transforming software testing by empowering individuals with real-world skills and advanced technology. With 24+ years in software engineering, I lead our mission to shape local talent into global software professionals. Join us in redefining the future of test engineering and making a lasting impact in the tech world.<\/p>\n<p><strong>Babu Manickam<\/strong><\/p>\n<p>CEO \u2013 Testleaf<\/p>\n<p><a href=\"https:\/\/in.linkedin.com\/in\/babu-manickam\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.testleaf.com\/blog\/wp-content\/uploads\/2025\/07\/linkedin.png\" alt=\"LinkedIn Logo\" width=\"28\" height=\"28\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; The StaleElementReferenceException is one of the most intriguing exceptions that you would have experienced in your selenium tests. Hope this post can help you resolve this exception from reoccurring in your tests. A StaleElementReferenceException occurs when Selenium tries to use a WebElement that no longer matches the current DOM\u2014usually because the page re-rendered, refreshed, &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.testleaf.com\/blog\/the-untold-story-stale-element-reference-exception-in-selenium\/\"> <span class=\"screen-reader-text\">The Untold Story \u2014 Stale Element Reference Exception in Selenium<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":352,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"right-sidebar","site-content-layout":"plain-container","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"categories":[16],"tags":[786,70,29,782,153,102],"class_list":["post-353","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-selenium","tag-java-selenium","tag-learn-selenium","tag-selenium","tag-selenium-dom","tag-selenium-software-testing","tag-software-testing-course"],"acf":[],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts\/353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/comments?post=353"}],"version-history":[{"count":12,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts\/353\/revisions"}],"predecessor-version":[{"id":9472,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/posts\/353\/revisions\/9472"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/media\/352"}],"wp:attachment":[{"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/media?parent=353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/categories?post=353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.testleaf.com\/blog\/wp-json\/wp\/v2\/tags?post=353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}