{"id":124044,"date":"2020-07-23T12:13:40","date_gmt":"2020-07-23T12:13:40","guid":{"rendered":"https:\/\/www.softwaretestinghelp.com\/?page_id=124044"},"modified":"2025-04-01T08:30:57","modified_gmt":"2025-04-01T08:30:57","slug":"headless-browser-testing","status":"publish","type":"page","link":"https:\/\/www.softwaretestinghelp.com\/headless-browser-testing\/","title":{"rendered":"What Is Headless Browser And Headless Browser Testing"},"content":{"rendered":"\n<p><strong>This tutorial explains what is a Headless Browser, its Advantages, Examples &amp; Headless Browser Testing with Selenium. You will also learn about HtmlUnitDrvier:<\/strong><\/p>\n\n\n\n<p>Over the past few years, we have seen the web being evolved from simple to highly advanced websites built with beautiful UI. In short, nowadays JavaScript controls the web extremely well so that it can handle almost every interaction on websites.<\/p>\n\n\n\n<p>Today, we can see that Browsers are so efficient that they can easily understand how to process JavaScript. In coordination with JavaScript, a Browser is taken care of programmatically. Headless Browsers are being considered very useful for Web Browser Testing as they improve our efforts.<\/p>\n\n\n\n \n  \n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/Understanding-Headless-Browsers-and-Headless-Browser-Testing.png\"><img decoding=\"async\" width=\"650\" height=\"366\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/Understanding-Headless-Browsers-and-Headless-Browser-Testing.png\" alt=\"Headless Browsers and Headless Browser Testing\" class=\"wp-image-124066\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/Understanding-Headless-Browsers-and-Headless-Browser-Testing.png 650w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/Understanding-Headless-Browsers-and-Headless-Browser-Testing-300x169.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Is A Headless Browser?<\/h2>\n\n\n\n<p>Headless &#8211; Oh Yes, you read it right. Headless, means a Web Browser without User Interface. To elaborate, Headless Browsers are those that access the Web Page, but the GUI is hidden from the user.<\/p>\n\n\n\n<p><strong>Further reading =&gt;&gt; <a href=\"https:\/\/www.softwaretestinghelp.com\/best-browser-ranking\/\" target=\"_blank\" rel=\"noopener\">Top Internet Browsers for PC<\/a><\/strong><\/p>\n\n\n\n<p>A headless browser is just like any other browser, the only difference is we cannot see anything on the screen. Here we can say that the program runs in the backend and nothing can be viewed on the screen. Thus, it is known to be the one without a Head\/GUI.<\/p>\n\n\n\n<p>Just like a normal browser a Headless Browser performs all the functions like clicking links, navigating pages, downloading the document, uploading a document, etc. by performing all the instructions as per our program.<\/p>\n\n\n\n<p>A normal browser would proceed with each step of the program with a GUI presentation, whereas for a Headless Browser, all the steps of the program are carried out sequentially and correctly and we can keep track of it with the help of a Console or command-line interface.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Advantages Of Headless Browser<\/h3>\n\n\n\n<p><strong>#1)<\/strong> Headless Browsers are used when the machine has no GUI, that is while using Linux (an OS without GUI) is executed via the command-line interface and has no interface to display.<\/p>\n\n\n\n<p><strong>#2)<\/strong> Also, these can be used in a case where there is no need to view anything and our purpose is just to ensure that all tests are getting executed successfully line by line.<\/p>\n\n\n\n<p><strong>#3)<\/strong> When there is a need for executing parallel tests, UI-based browsers consume a lot of memory and\/or resources. Hence, here Headless browser is the preferred use.<\/p>\n\n\n\n<p><strong>#4)<\/strong> If we want to perform Regression Testing for the next coming releases with continuous Integration and we are done with the Cross Browser Testing, then Headless browser testing can be used.<\/p>\n\n\n\n<p><strong>#5)<\/strong> If we wish to simulate multiple browsers on a single machine or run test cases just for data creation, then we use Headless Browsers.<\/p>\n\n\n\n<p><strong>#6)<\/strong> When compared to Real Browsers, Headless Browsers are faster. So, these are chosen for faster execution.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Disadvantages Of Headless Browser<\/h3>\n\n\n\n<p><strong>#1)<\/strong> Although Headless Browsers are very fast, still there are some disadvantages as well. Due to its faster page loading ability, sometimes it is difficult to debug the issues.<\/p>\n\n\n\n<p><strong>#2)<\/strong> Real Browser Testing includes performing test cases in the presence of GUI. Also, these tests are performed in front of the user, hence the user can interact with the team, referring the GUI and discuss where ever changes or corrections are required. In such a case, Headless Browsers cannot be used.<\/p>\n\n\n\n<p><strong>#3)<\/strong> As Headless Browsers don\u2019t represent GUI, it is troublesome to report errors with the help of screenshots. A Real Browser helps to present the defects by generating screenshots as screenshots are a must in testing.<\/p>\n\n\n\n<p><strong>#4)<\/strong> In the case where a lot of browser debugging is required, the use of Headless Browsers can be challenging.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Examples Of Headless Browsers<\/h3>\n\n\n\n<p>There are various Headless Browsers available.<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\"><strong>Enlisted below are some examples:<\/strong><\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Html Unit Browsers<\/li>\n\n\n\n<li>Firefox<\/li>\n\n\n\n<li>Chrome<\/li>\n\n\n\n<li>PhantomJS<\/li>\n\n\n\n<li>Zombie.js<\/li>\n\n\n\n<li>TrifleJS<\/li>\n\n\n\n<li>SlimerJS<\/li>\n\n\n\n<li>Splash<\/li>\n\n\n\n<li>SimpleBrowser<\/li>\n\n\n\n<li>NodeJS<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Headless Testing With Selenium<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/VatsaSolutions.png\"><img decoding=\"async\" width=\"356\" height=\"144\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/VatsaSolutions.png\" alt=\"VatsaSolutions\" class=\"wp-image-124050\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/VatsaSolutions.png 356w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/VatsaSolutions-300x121.png 300w\" sizes=\"(max-width: 356px) 100vw, 356px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Selenium is a free, open-source testing tool. It is a quite well-known and efficient automation tool for performing automation tests.<\/p>\n\n\n\n<p>Selenium allows us to write test scripts in various languages like Java, Python, C#, Ruby, Perl, Scala, etc. by supporting numerous browsers like Firefox, Chrome, Internet Explorer, Opera, Safari, etc. and is capable to run on Windows, Linux, and macOS.<\/p>\n\n\n\n<p>Selenium Webdriver provides good support to dynamic web pages, where various web elements change without the page itself being reloaded.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Headless Chrome And Firefox<\/h3>\n\n\n\n<p>Both Firefox, as well as Chrome Browsers, support Headless automation testing which is an implementation of the code in Firefox and Chrome without GUI.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Headless Firefox Example<\/h4>\n\n\n\n<p>Headless Firefox provides support for versions starting 56 and is available on Windows, Linux, and macOS. We need to download the geckodriver.exe file of the latest version of Firefox and ensure that the version we will be using is greater than the minimum supported version. Firefox runs in headless mode via the headless() method.<\/p>\n\n\n\n<p><strong>Let&#8217;s see the code for Firefox Browser in Headless mode:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><pre class=\"brush: java; title: ; notranslate\" title=\"\">package headless_testing;\n\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.firefox.FirefoxDriver;\n\npublic class HeadlessFirefox {\n\n\tpublic static void main(String&#x5B;] args) {\n\t\t\/\/ TODO Auto-generated method stub\n\n\t\tSystem.setProperty(&amp;amp;quot;webdriver.gecko.driver&amp;amp;quot;,&amp;amp;quot; E:\/\/Selenium\/latest firefox exe\/geckodriver.exe&amp;amp;quot;);\n\n\t\tFirefoxOptions options = new FirefoxOptions();\n\t\toptions.setHeadless(true);\n\n\t\tWebDriver driver = new FirefoxDriver(options);\n\n\t\tdriver.get(&amp;amp;quot;www.google.com\/&amp;amp;quot;);\n\t\tSystem.out.println(&amp;amp;quot;Executing Firefox Driver in Headless mode..\\n&amp;amp;quot;);\n\n\t\tSystem.out.println(&amp;amp;quot;&amp;amp;gt;&amp;amp;gt; Page Title : &amp;amp;quot;+driver.getTitle());\n             System.out.println(&amp;amp;quot;&amp;amp;gt;&amp;amp;gt; Page URL  : &amp;amp;quot;+driver.getCurrentUrl());\n\t}\n\n}<\/pre><\/pre>\n\n\n\n<p>On executing the above code for Firefox Browser in Headless mode, the title of the Page and its URL are displayed. The code is executed in Headless mode and can be tracked on the Console.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Firefox.png\"><img decoding=\"async\" width=\"307\" height=\"67\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Firefox.png\" alt=\"Firefox Driver output\" class=\"wp-image-124051\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Firefox.png 307w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Firefox-300x65.png 300w\" sizes=\"(max-width: 307px) 100vw, 307px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Just like Headless Firefox is supported by Selenium, it runs on SlimmerJS and W3C WebDrier as well.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Headless Chrome Example<\/h4>\n\n\n\n<p>Headless Chrome provides support for Chrome versions 60 onwards and is available for Windows, Linux, and macOS. We need to download the .exe file of the latest version of the Chrome browser.<\/p>\n\n\n\n<p><strong>Given below is the syntax for using Chrome in Headless mode:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ChromeOptions options = new ChromeOptions();\noptions.addArguments(\u201c--headless\u201d); <strong>OR<\/strong> options.setHeadless(true);<\/pre>\n\n\n\n<p><strong>Let&#8217;s see the code for Chrome Browser in Headless mode:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><pre class=\"brush: java; title: ; notranslate\" title=\"\">package headless_testing;\n\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.chrome.ChromeDriver;\nimport org.openqa.selenium.chrome.ChromeOptions;\n\npublic class HeadlessChrome {\n\n\tpublic static void main(String&#x5B;] args) {\n\t\t\/\/ TODO Auto-generated method stub\n\n\t\tSystem.setProperty(&amp;amp;quot;webdriver.chrome.driver&amp;amp;quot;,&amp;amp;quot;E:\/\/Selenium\/latest chrome exe\/chromedriver.exe&amp;amp;quot;);\n\n\t\tChromeOptions options = new ChromeOptions();\n\t\toptions.addArguments(&amp;amp;quot;--headless&amp;amp;quot;);\n\n\t\tWebDriver driver = new ChromeDriver(options);\n\n\t\tdriver.get(&amp;amp;quot;www.google.com\/&amp;amp;quot;);\n\t\tSystem.out.println(&amp;amp;quot;Executing Chrome Driver in Headless mode..\\n&amp;amp;quot;);\n\n\t\tSystem.out.println(&amp;amp;quot;&amp;amp;gt;&amp;amp;gt; Page Title : &amp;amp;quot;+driver.getTitle());\n\t\tSystem.out.println(&amp;amp;quot;&amp;amp;gt;&amp;amp;gt; Page URL  : &amp;amp;quot;+driver.getCurrentUrl());\n\t}\n}<\/pre><\/pre>\n\n\n\n<p>On executing the above code for the Chrome Browser in Headless mode, the title of the Page and its URL are displayed. The code is executed and the execution can be tracked on the Console.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Chrome.png\"><img decoding=\"async\" width=\"308\" height=\"66\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Chrome.png\" alt=\"Chrome Driver output\" class=\"wp-image-124052\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Chrome.png 308w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshot_Chrome-300x64.png 300w\" sizes=\"(max-width: 308px) 100vw, 308px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Headless HtmlUnitDriver<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">What Is HtmlUnitDriver?<\/h4>\n\n\n\n<p>HtmlUnitDriver is a Headless web browser written in Java. The name suggests it is a Headless driver which is based on HtmlUnit. HtmlUnitDriver is a built-in headless browser in Selenium WebDriver. It is considered to be the most lightweight and fast browser.<\/p>\n\n\n\n<p>Let&#8217;s move on to the implementation of the HtmlUnitDriver. The HtmlUnitDriver JAR files can be downloaded from the official website of Selenium.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">HtmlUnitDriver In Headless Mode<\/h4>\n\n\n\n<p>Just like all the other browsers, for the HtmlUnitDriver as well, we need to create an object for the class to run the code in headless mode.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><pre class=\"brush: java; title: ; notranslate\" title=\"\">package headless_testing;\n\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.htmlunit.HtmlUnitDriver;\n\npublic class HtmUnitDriver {\n\npublic static void main(String&#x5B;] args) {\n\t\/\/ TODO Auto-generated method stub\n\n\tWebDriver driver = new HtmlUnitDriver();\n\tdriver.get(&amp;amp;quot;https:\/\/www.google.com\/&amp;amp;quot;);\t\t\t\t\n\nSystem.out.println(&amp;amp;quot;Executing HtmlUnitDriver in Headless mode..\\n&amp;amp;quot;);\n\n\tSystem.out.println(&amp;amp;quot;&amp;amp;gt;&amp;amp;gt; Page Title : &amp;amp;quot;+ driver.getTitle());\n\tSystem.out.println(&amp;amp;quot;&amp;amp;gt;&amp;amp;gt; Page URL   : &amp;amp;quot;+ driver.getCurrentUrl());\n\n\t}\n}<\/pre><\/pre>\n\n\n\n<p>Thus on executing the above code for HtmlUnitDriver in Headless mode, the Output received displays the Title of the Page and its URL. The Output is received through the Console where all the functions performed in the program can be viewed in a stepwise manner.<\/p>\n\n\n\n<p><strong>Below is the screenshot of the above-executed code:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshotHtmlUnit.png\"><img decoding=\"async\" width=\"645\" height=\"464\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshotHtmlUnit.png\" alt=\"HtmlUnitDriver In Headless mode\" class=\"wp-image-124053\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshotHtmlUnit.png 645w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/CodeScreenshotHtmlUnit-300x216.png 300w\" sizes=\"(max-width: 645px) 100vw, 645px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Features\/Advantages Of HtmlUnitDriver<\/h4>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/HtmlUnitDriver.png\"><img decoding=\"async\" width=\"573\" height=\"328\" src=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/HtmlUnitDriver.png\" alt=\"Features of HtmlUnitDriver\" class=\"wp-image-124054\" srcset=\"https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/HtmlUnitDriver.png 573w, https:\/\/www.softwaretestinghelp.com\/wp-content\/qa\/uploads\/2020\/03\/HtmlUnitDriver-300x172.png 300w\" sizes=\"(max-width: 573px) 100vw, 573px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><em>[image <a href=\"https:\/\/www.spec-qa.com\/\" target=\"_blank\" rel=\"noopener nofollow\">source<\/a>]<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Provides support for HTTPS and HTTP protocols.<\/li>\n\n\n\n<li>Great support for JavaScript.<\/li>\n\n\n\n<li>Helps in Multitasking, thereby allowing to run multiple tests.<\/li>\n\n\n\n<li>Provides support for Cookies. Also, supports Proxy Servers.<\/li>\n\n\n\n<li>Improves the performance and speed of test scripts, as it has the fastest implementation of WebDriver.<\/li>\n\n\n\n<li>HtmlUnitDriver is platform-independent.<\/li>\n\n\n\n<li>As it is Headless by default, it supports Headless Testing.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Disadvantages Of HtmlUnitDriver<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The use of HtmlUnitDriver is not possible for complex websites.<\/li>\n\n\n\n<li>While comparing with real browser testing, for headless browsers like HtmlUnitDriver, it becomes very difficult to debug the script.<\/li>\n\n\n\n<li>The generation of screenshots is not possible with HtmlUnitDriver.<\/li>\n\n\n\n<li>Headless Browsers emulate other browsers.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Headless Browser testing is faster, by providing great speed and efficiency but it fails to reach out for some specific features that are indeed fulfilled by Non-Headless \/ Real Browsers.<\/p>\n\n\n\n<p>Headless Browser has its benefits while Real Browser has its own. As per the need for testing, one can choose whichever technique is preferable and beneficial to the tester.<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\"><strong>For Example:<\/strong><\/span> In the case where there exists user involvement, Real Browser testing can be chosen. If there are no UI presentation requirements to perform the testing quickly, then one can go for Headless Browser testing.<\/p>\n\n\n\n<p>More efficient testing would be the one with a combination of both Headless as well as Real Browser. Thereby overcoming the limitations of each individual.<\/p>\n\n\n\n<p><em><strong>Hope this tutorial has clarified all your queries on Headless Browser &amp; Headless Browser Testing!!<\/strong><\/em><\/p>\n\n\n\n<p><\/p>\n\r\n\t\t\t<div id=\"daexthefup-container\"\r\n\t\t\t\tclass=\"daexthefup-container daexthefup-layout-stacked daexthefup-alignment-center\"\r\n\t\t\t\tdata-post-id=\"124044\">\r\n\r\n\t\t\t\t<div class=\"daexthefup-feedback\">\r\n\t\t\t\t\t<div class=\"daexthefup-text\">\r\n\t\t\t\t\t\t<h3 class=\"daexthefup-title\">Was this helpful?<\/h3>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"daexthefup-buttons-container\">\r\n\t\t\t\t\t\t<div class=\"daexthefup-buttons\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t<div class=\"daexthefup-yes daexthefup-button daexthefup-button-type-icon\" data-value=\"1\">\r\n\t\t\t\t\r\n                <svg>\r\n                    <defs>\r\n                        <style>.thumb-up-cls-1{fill:#c9c9c9;}.thumb-up-cls-2{fill:#e1e1e1;}.thumb-up-cls-3{fill:#676767;}<\/style>\r\n                    <\/defs>\r\n                    <g id=\"thumb_up\">\r\n                        <path class=\"thumb-up-cls-2 daexthefup-icon-circle\" d=\"m24,3c11.58,0,21,9.42,21,21s-9.42,21-21,21S3,35.58,3,24,12.42,3,24,3m0-1C11.85,2,2,11.85,2,24s9.85,22,22,22,22-9.85,22-22S36.15,2,24,2h0Z\" \/>\r\n                        <g>\r\n                            <rect class=\"thumb-up-cls-3 daexthefup-icon-secondary-color\" x=\"10\" y=\"20\" width=\"6\" height=\"15\" rx=\"1.5\" ry=\"1.5\" \/>\r\n                            <path class=\"thumb-up-cls-1 daexthefup-icon-primary-color\" d=\"m30.57,9.06l-.49-.1c-.81-.17-1.61.35-1.78,1.16l-5.3,11.74c-.17.81,3.16,1.61,3.97,1.78l1.96.41c.81.17,1.61-.35,1.78-1.16l2.18-10.27c.34-1.61-.7-3.21-2.31-3.56Z\" \/>\r\n                            <path class=\"thumb-up-cls-1 daexthefup-icon-primary-color\" d=\"m38.17,20h-18.67c-.83,0-1.5.67-1.5,1.5v12c0,.83.67,1.5,1.5,1.5h16.27c.71,0,1.33-.5,1.47-1.21l2.4-12c.19-.93-.53-1.8-1.47-1.8Z\" \/>\r\n                        <\/g>\r\n                    <\/g>\r\n                <\/svg>\t\t\t<\/div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t<div class=\"daexthefup-no daexthefup-button daexthefup-button-type-icon\" data-value=\"0\">\r\n\t\t\t\t\r\n                <svg>\r\n                    <defs>\r\n                        <style>.thumb-down-cls-1{fill:#c9c9c9;}.thumb-down-cls-2{fill:#e1e1e1;}.thumb-down-cls-3{fill:#676767;}<\/style>\r\n                    <\/defs>\r\n                    <g id=\"thumb_down\">\r\n                        <path class=\"thumb-down-cls-2 daexthefup-icon-circle\" d=\"m24,3c11.58,0,21,9.42,21,21s-9.42,21-21,21S3,35.58,3,24,12.42,3,24,3m0-1C11.85,2,2,11.85,2,24s9.85,22,22,22,22-9.85,22-22S36.15,2,24,2h0Z\" \/>\r\n                        <g>\r\n                            <rect class=\"thumb-down-cls-3 daexthefup-icon-secondary-color\" x=\"10\" y=\"13\" width=\"6\" height=\"15\" rx=\"1.5\" ry=\"1.5\" \/>\r\n                            <path class=\"thumb-down-cls-1 daexthefup-icon-primary-color\" d=\"m30.57,38.94l-.49.1c-.81.17-1.61-.35-1.78-1.16l-5.3-11.74c-.17-.81,3.16-1.61,3.97-1.78l1.96-.41c.81-.17,1.61.35,1.78,1.16l2.18,10.27c.34,1.61-.7,3.21-2.31,3.56Z\" \/>\r\n                            <path class=\"thumb-down-cls-1 daexthefup-icon-primary-color\" d=\"m38.17,28h-18.67c-.83,0-1.5-.67-1.5-1.5v-12c0-.83.67-1.5,1.5-1.5h16.27c.71,0,1.33.5,1.47,1.21l2.4,12c.19.93-.53,1.8-1.47,1.8Z\" \/>\r\n                        <\/g>\r\n                    <\/g>\r\n                <\/svg>\t\t\t<\/div>\r\n\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"daexthefup-comment\">\r\n\t\t\t\t\t<div class=\"daexthefup-comment-top-container\">\r\n\t\t\t\t\t\t<label id=\"daexthefup-comment-label\" class=\"daexthefup-comment-label\"><\/label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"daexthefup-comment-character-counter-container\">\r\n\t\t\t\t\t\t\t\t<div id=\"daexthefup-comment-character-counter-number\"\r\n\t\t\t\t\t\t\t\t\tclass=\"daexthefup-comment-character-counter-number\"><\/div>\r\n\t\t\t\t\t\t\t\t<div class=\"daexthefup-comment-character-counter-text\"><\/div>\r\n\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<textarea id=\"daexthefup-comment-textarea\" class=\"daexthefup-comment-textarea\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Type your message\"\r\n\t\t\t\t\t\t\t\tmaxlength=\"\r\n\t\t\t\t\t\t\t\t400\t\t\t\t\t\t\t\t\t\"><\/textarea>\r\n\t\t\t\t\t<div class=\"daexthefup-comment-buttons-container\">\r\n\t\t\t\t\t\t<button class=\"daexthefup-comment-submit daexthefup-button\">Submit<\/button>\r\n\t\t\t\t\t\t<button class=\"daexthefup-comment-cancel daexthefup-button\">Cancel<\/button>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"daexthefup-successful-submission-text\">Thanks for your feedback!<\/div>\r\n\r\n\t\t\t<\/div>\r\n\r\n\t\t\t","protected":false},"excerpt":{"rendered":"<p>This tutorial explains what is a Headless Browser, its Advantages, Examples &amp; Headless Browser Testing with Selenium. You will also learn about HtmlUnitDrvier: Over the past few years, we have seen the web being evolved from simple to highly advanced websites built with beautiful UI. In short, nowadays JavaScript controls &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"What Is Headless Browser And Headless Browser Testing\" class=\"read-more button\" href=\"https:\/\/www.softwaretestinghelp.com\/headless-browser-testing\/#more-124044\" aria-label=\"Read more about What Is Headless Browser And Headless Browser Testing\">Read more<\/a><\/p>\n","protected":false},"author":9,"featured_media":124066,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_helpful_pro_status":1,"footnotes":""},"categories":[8],"tags":[],"class_list":{"0":"post-124044","1":"page","2":"type-page","3":"status-publish","4":"has-post-thumbnail","6":"category-automation-testing"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/pages\/124044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/comments?post=124044"}],"version-history":[{"count":0,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/pages\/124044\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/media\/124066"}],"wp:attachment":[{"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/media?parent=124044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/categories?post=124044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.softwaretestinghelp.com\/wp-json\/wp\/v2\/tags?post=124044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}