<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Deeksha Agarwal</title>
    <description>The latest articles on DEV Community by Deeksha Agarwal (@_deekshagarwal_).</description>
    <link>https://dev.to/_deekshagarwal_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F129247%2Fa3b522ce-1e12-425b-82d9-97d029c34a42.png</url>
      <title>DEV Community: Deeksha Agarwal</title>
      <link>https://dev.to/_deekshagarwal_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_deekshagarwal_"/>
    <language>en</language>
    <item>
      <title>Progressive Web Application: Statistics- Infographic</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Thu, 21 Apr 2022 14:39:19 +0000</pubDate>
      <link>https://dev.to/testmuai/progressive-web-application-statistics-infographic-1768</link>
      <guid>https://dev.to/testmuai/progressive-web-application-statistics-infographic-1768</guid>
      <description>&lt;p&gt;We love PWAs and seems like so do you 😉 That’s why you are here. In our previous blogs, &lt;a href="https://www.lambdatest.com/blog/testing-a-progressive-web-application-with-lambdatest/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr21_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Testing a Progressive web app with LambdaTes&lt;/a&gt;t and &lt;a href="https://www.lambdatest.com/blog/planning-to-move-your-app-to-a-pwa-all-you-need-to-know/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr21_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Planning to move your app to a PWA: All you need to know&lt;/a&gt;, we have already gone through a lot on PWAs so we decided to cut is short and make it easier for you to memorize by making an Infographic, all in one place. Hope you like it.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/history?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr21_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;Session history management&lt;/a&gt; - The pushstate() and replaceState() methods of the history object are used to manipulate the browser’s session history.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2800%2F0%2A3cwzwPWN1YCE7y8Z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2800%2F0%2A3cwzwPWN1YCE7y8Z.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/iframe-seamless?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr21_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;seamless attribute for iframes&lt;/a&gt; - The seamless attribute allows the contents of iframe elements to flow into regular ancestor elements. Since the content is rendered by the browser, it is subject to all of the usual browser quirks and CSS styles that affect resolution or layout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Share this Image On Your Site
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Please include attribution to &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr21_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;www.lambdatest.com&lt;/a&gt; with this graphic.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/img-naturalwidth-naturalheight?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr21_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;naturalWidth &amp;amp; naturalHeight image properties&lt;/a&gt; - The img-naturalwidth and img-naturalheight properties describe the intrinsic width and height of an image, as determined by its media type.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;a target="_blank" href='https://www.lambdatest.com/blog/progressive-web-application-statistics-infographic/'&amp;gt;
  &amp;lt;img src='https://www.lambdatest.com/blog/wp-content/uploads/2018/04/PWA-1.jpg' alt='Progressive Web Application: 
   Statistics' 540px border='0' /&amp;gt;
&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What Is Cross Browser Compatibility And Why We Need It?</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Wed, 20 Apr 2022 10:41:19 +0000</pubDate>
      <link>https://dev.to/testmuai/what-is-cross-browser-compatibility-and-why-we-need-it-5bff</link>
      <guid>https://dev.to/testmuai/what-is-cross-browser-compatibility-and-why-we-need-it-5bff</guid>
      <description>&lt;p&gt;Last two decades have seen a tremendous increase in the web. In 1998 there were around 2.4 Million websites, now there are around 1.8 billions. An that is exactly an increase of 74900%. Not just this, the number of internet users have shot up by 2727% from 147 million in 1998 to 4,157 millions in 2018. The number of mobile users back in 1998 were 318 millions whereas in 2018 it’s 7740 millions. A straight advancement of 2333%.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2400%2F0%2A9ukCOmEv5qMUlqYt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2400%2F0%2A9ukCOmEv5qMUlqYt.jpg" alt="*Growth in number of websites, internet users, and mobile users from 1998 to 2018*" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is so much content on the web that multiple lifetimes would not be enough to go through it all. You can find everything starting from how to cook an omelette to how to make an airplane. Like every damn thing! And people are viewing this content on more than 3000 different types of web enabled devices.&lt;/p&gt;

&lt;p&gt;That’s what we are concerned about.&lt;/p&gt;

&lt;p&gt;More users, more devices, more platforms, more browsers and ultimately more ways in which your website can be viewed. So, your major concern should be do your users (who are browsing your website on thousands of distinct devices) see your website the same way you want them to see?&lt;/p&gt;

&lt;p&gt;The growth in web also resulted in multiple different types of technologies to build this web ecosystem, and a significant diverse tools, like web browsers, to access and interact with this content. Unfortunately, not all technologies are mutually compatible with each other. A web developer would always need to make sure that their website is compatible with every technology hence the need for &lt;a href="https://www.lambdatest.com/feature?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;browser compatibility testing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once the users face some problem, they will leave your site and will never come back. So, yes! Cross &lt;strong&gt;browser compatibility&lt;/strong&gt; is quite a needful thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  ‘Other browsers’ demand for the need of cross browser testing
&lt;/h2&gt;

&lt;p&gt;Most developers have a favorite browser, and I will name this condition “Browser Bias”. Usually this favorite browser is the top version of &lt;a href="https://www.lambdatest.com/test-on-chrome-68-browser-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;chrome&lt;/a&gt; or &lt;a href="https://www.lambdatest.com/test-on-mozilla-firefox-61-browser-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;firefox&lt;/a&gt;. They develop and debug the whole product on that browser. But the major thing that needed to be kept in mind is &lt;strong&gt;&lt;em&gt;‘We are not our users’. Our users can be anyone and they might be using any browser.&lt;/em&gt;&lt;/strong&gt; We cannot let our bias towards a browser or a browser resolution affect our product. It is entirely possible that browsers that we respectfully ignore while developing can be a favorite browser to our target users.&lt;/p&gt;

&lt;p&gt;Granted that latest 2–3 versions of chrome would have the highest coverage. But even that coverage is not 100%. You cannot not develop for the rest of the users. It’s just not good design.&lt;/p&gt;

&lt;p&gt;Latest global stats show that Chrome, Safari, and UC browsers are the top 3 browsers in 2018 but again, this statistics is a little misleading because in different areas people prefer different browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2508%2F0%2AARxIpbClQiqDBbYS.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2508%2F0%2AARxIpbClQiqDBbYS.png" alt="*Top 3 Browsers in 2018 worldwide*" width="800" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Say for example, In Japan The top 3 browser include Chrome, Safari, and IE with safari holding 25% market share on all device types compared to the global share of 14.4%.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2462%2F0%2A3ZLTPR6Owm1XC6xU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2462%2F0%2A3ZLTPR6Owm1XC6xU.png" alt="*Top 3 browsers in Japan in last year*" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similarly, when we look at the statistics of Germany we’ll find Chrome, Firefox and Safari competing for the race of top 3 browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2480%2F0%2ABma4b1z4eZAquT0S.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2480%2F0%2ABma4b1z4eZAquT0S.png" alt="*Top 3 browsers in Germany last year*" width="800" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, in countries like Cuba Android browser bags the position in top 3 browsers so, this statistics shows that you can’t even rely on the top browsers in order to find out the most used browser. This is quite dynamic and dependent. Some prefer chrome, some prefer firefox, safari, &lt;a href="https://www.lambdatest.com/test-on-internet-explorer-10-browser-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;IE&lt;/a&gt; and many gives the first preference to mobile browsers.&lt;/p&gt;

&lt;p&gt;Mouthful of data to digest?&lt;/p&gt;

&lt;p&gt;On the top of it, various browsers comes with various features.&lt;/p&gt;

&lt;p&gt;For example, placeholder, the attribute in HTML isn’t supported by even the &lt;a href="https://www.lambdatest.com/test-on-internet-explorer-11-browser-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;latest versions of IE&lt;/a&gt; and &lt;a href="https://www.lambdatest.com/test-on-microsoft-edge-17-browser-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Edge&lt;/a&gt; however chrome and Firefox lovingly accepts that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2450%2F0%2AKJ9D8ngR5R6yNoWV.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2450%2F0%2AKJ9D8ngR5R6yNoWV.png" alt="*Browsers supporting Placeholder*" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similarly &lt;a href="https://www.lambdatest.com/web-m-video-format?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;WebM video format&lt;/a&gt; isn’t supported in the one of the widely used browsers, Safari along with Edge and iOS Safari.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2424%2F0%2Aiu1oKWRUMSwXcHis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2424%2F0%2Aiu1oKWRUMSwXcHis.png" alt="*Browsers supporting WebM video format*" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When used, these may cause bug to peek into the other &lt;strong&gt;web browser&lt;/strong&gt; that you not find important.&lt;/p&gt;

&lt;p&gt;So, don’t decide for yourself what will work, &lt;strong&gt;Let the data speak for you&lt;/strong&gt;. You can also use various analytics tools like Google analytics, kissmetrics, etc to gather different type of data like your traffic source, the most liked browsers by your audience, and a lot more to that. So, don’t assume anything as preferring data over bias is what will help you in winning.&lt;/p&gt;

&lt;p&gt;This certification is for anyone who wants to stay ahead among professionals who are growing their career in Selenium automation testing.&lt;/p&gt;

&lt;p&gt;Here’s a short glimpse of the Selenium 101 certification from LambdaTest:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/qx9FPFfJm7E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="http://lambdatest.com/free-online-tools/text-repeater?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Online Text Repeater&lt;/a&gt; - You can repeat words in your text as many times as you want. Just write or copy and paste the text, and choose how many times you want it to appear. This tool is also called a Text Multiplier Tool, as it multiplies the number of words you write.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross Browser (Compatibility) x (Accessibility)
&lt;/h2&gt;

&lt;p&gt;If you have reached this point you might be familiar with the importance of the cross &lt;strong&gt;browser compatibility&lt;/strong&gt; till now. But there is still a lot more of to it and if I go on I can also write a book on that. Don’t mind, I surely will. 😉&lt;/p&gt;

&lt;p&gt;Let’s now explore the yet major aspect of cross browser compatibility that is &lt;strong&gt;accessibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The major aim you have is to provide all your users the same experience across all the browsers. When we talk about all the users, we can’t simply ignore the ones that are differently gifted or the persons with disabilities. So, accessibility adds to the cross browser compatibility by making the web available no differently for them. If your website works on all browser but fails to show its value on screen readers then you are missing out on a major section of population.&lt;/p&gt;

&lt;p&gt;As stated by WHO, 285 million people are visually impaired worldwide so your website ought to work fine for them too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AyB3qCkR7WlgiHL_n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AyB3qCkR7WlgiHL_n.jpg" width="795" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For those who have hearing impairments, having transcripts in videos on your websites can help.&lt;/p&gt;

&lt;p&gt;When you account for accessibility to your website, you benefit other users by adding SEO to your website in addition to helping the differently abled people.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Screen reader accessible pages are also accessible to search engines by the benefit of search engine algorithm.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adding transcripts in videos means more content, i.e. more SEO friendly website.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not just this, search engines love accessibility friendly websites, so they give special brownie points to accessibility friendly websites. So, it’s going to benefit you in more ways you can imagine.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/utf8-decode?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;UTF8 Decode&lt;/a&gt; - UTF8 Decoder is a variable-length character decoding that can make any Unicode character readable. Each Unicode character is made readable using 1–4 bytes. UTF-8 is the most common Unicode decoding, and is used by a majority of applications and websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you are not cross browser compatible, your competitors will benefit from that!
&lt;/h2&gt;

&lt;p&gt;Yes, and that’s absolutely true. Because user may love you, they may come to you but if you don’t serve them well they will go away and may never return.&lt;/p&gt;

&lt;p&gt;Because, users won’t switch their browser to see you working, they will switch the website and to whom will they head to? &lt;em&gt;**Your competitors&lt;/em&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If your website fails to meet their standards on their browsers, you are going to be in trouble as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;45% will hesitate in visiting your website again or they may never visit it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;32% of the users, you find your site problematic in one way or another are less likely to pay you for your service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;35% of the users will make a more negative perception of your company.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even 22% of them will leave for good.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, may be your actions will benefit your competitors along with causing loss to you.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/text-rotater?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Online Text Rotater&lt;/a&gt; - With this tool, you can rotate a letter in a sentence to the left or right. If you select the left option, the text will shift one character to the left. In this case, the first letter will end up at the end of the string. If you choose the right direction, then the letter from the end of the text will move to the front.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mastering the Art of making a website cross browser compatible
&lt;/h2&gt;

&lt;p&gt;If there is so much to &lt;strong&gt;cross browser compatibility&lt;/strong&gt;, so haven’t everyone just done that already?&lt;/p&gt;

&lt;p&gt;Making your website cross browser compatible is an art. Some major hacks of mastering this art includes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Staying up-to date with the latest technologies:&lt;/strong&gt; There is no harm in keeping in pace with the latest technologies. Stay in pace with the latest web development technologies, development tools, updates in libraries, frameworks. This will help you to take care of your websites cross browser compatibility with implementations of these technologies, supported libraries, frameworks and yes, making sure of your website’s performance of the latest released browsers and browser versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing carefully: **Test your website thoroughly for various platforms and browsers using some tool. LambdaTest is a cross **browser compatibility testing&lt;/strong&gt; tool that can help you ensure that your website works fine for those other browsers too. 😉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility:&lt;/strong&gt; Make sure that your website is accessible to all. Including the persons with disabilities too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pleasing look and feel:&lt;/strong&gt; Your website should provide a pleasing look and feel to the users no matter what. Make sure that your users love it on every platform they access it.&lt;/p&gt;

&lt;p&gt;So, the Question is How can you make your website &lt;strong&gt;cross browser compatible&lt;/strong&gt;? Well, that’s a whole new blog topic and I don’t want to hang you out just here. You can find it out in my next blog. Till then adios.&lt;/p&gt;

&lt;p&gt;See you in the next blog with on: &lt;a href="https://www.lambdatest.com/blog/how-to-make-a-cross-browser-compatible-website/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr20_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;How can you make your website cross browser compatible?&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>database</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>Performing Cross Browser Testing with LambdaTest</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Tue, 19 Apr 2022 09:11:23 +0000</pubDate>
      <link>https://dev.to/testmuai/performing-cross-browser-testing-with-lambdatest-1b46</link>
      <guid>https://dev.to/testmuai/performing-cross-browser-testing-with-lambdatest-1b46</guid>
      <description>&lt;p&gt;With so many options available in the market, the user always remains in a dilemma which tool to use. We are here to ease your problem and to help you how can you use the perfect tool to perform cross browser testing.&lt;/p&gt;

&lt;p&gt;LambdaTest, a free cross browser testing platform where you can test your website/ webapps across 3000+ OS, browser, browser versions, and resolutions on mobile and desktop devices, can be your all time best friend for fulfilling your cross browser testing needs.&lt;/p&gt;

&lt;p&gt;So, the various types of &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;cross browser testing&lt;/a&gt; that you can perform using LambdaTest includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.lambdatest.com/live-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Live testing&lt;/a&gt; on mobile and desktop devices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visual UI testing to find out regression bugs using Screenshot testing, responsive testing, and Smart Testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apart from real time testing where you get access to a real machine running choice of virtual environment, you can also log bugs directly to your favourite project management tool through easy integrations.&lt;/p&gt;

&lt;p&gt;Single click bug logging as you can guess from the name, can help you move your bugs to bug tracker tools with just one click. So, this saves you from the pain of creating a bug, adding details, and even attaching screenshots as LambdaTest does that for you. LambdaTest comes with one click integration with tools like &lt;a href="https://www.lambdatest.com/jira-integration?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;JIRA&lt;/a&gt;, Asana, Trello, Github, and Slack, and you can send issues directly to these tools with LambdaTest’s one click bug logging feature.&lt;/p&gt;

&lt;p&gt;Coming back to performing cross browser testing, let’s start with Real time testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Performing Real Time Cross Browser Testing with LambdaTest
&lt;/h2&gt;

&lt;p&gt;In real time live interactive cross browser testing, you can test your website/ web application across various browser and OS combinations on desktop and mobile devices. You can test as if you are using a real machine and not a virtual machine.&lt;/p&gt;

&lt;p&gt;To get started, you need to login to LambdaTest first, if already have an account else sign up to LambdaTest.&lt;/p&gt;

&lt;p&gt;Once you log in, you need to start your real time cross browser testing.&lt;/p&gt;

&lt;p&gt;So, you need to go to real time menu, enter your URL which you want to test, select the configuration for which you want to perform cross browser testing and then click on start.&lt;/p&gt;

&lt;p&gt;Boom!&lt;/p&gt;

&lt;p&gt;A new virtual machine will be fired up in your local machine on which you can test your website/ web application for cross browser compatibility.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2718%2F0%2A_lHGMfWD2pOv2Ce-.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2718%2F0%2A_lHGMfWD2pOv2Ce-.png" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’re all set with the configuration you selected. Now you can perform testing, take screenshots in between if you find a bug, mark as a bug, record video of the test session for further consideration, save image to your LambdaTest’s gallery, change the resolution of the machine on the go, move your test to a project, change basic settings, and once you’re done with the test you can end session.&lt;/p&gt;

&lt;p&gt;You’ll find an additional ‘Switch’ feature on the top of the left menu bar which helps you in switching to a new configuration without the need of ending the session and re-launching it again. You can just select switch and the new configuration and the new VM will be up on your screen.&lt;/p&gt;

&lt;p&gt;With so much features available, you will find everything handy while testing.&lt;/p&gt;

&lt;p&gt;You can also perform real time testing on mobile devices. For this, you need to go to the mobile icon under real time testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A0pmWIpRsmuxMYYWn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A0pmWIpRsmuxMYYWn.png" width="261" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select the mobile device and then go ahead with your testing just like you did in desktop devices. In iOS simulators you’ll find an additional ‘Clear Cache’ functionality that lets you clear your cache while performing your testing so if you make some changes and you want to test them in the same session, you don’t need to go through the hassle of clearing cache following the long and hectic method, all you need to do is to just click on clear cache and you’re all set to test again.&lt;/p&gt;

&lt;p&gt;Visuals are easier to retain and so we’ve taken care of that too, you can watch the same in a &lt;a href="https://www.lambdatest.com/video.php#real-time-browser-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;video&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This certification is for anyone who wants to stay ahead among professionals who are growing their career in Selenium automation testing.&lt;/p&gt;

&lt;p&gt;Here’s a short glimpse of the Selenium 101 certification from LambdaTest:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/qx9FPFfJm7E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/random-word-generator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Random Word Generator&lt;/a&gt; - LambdaTest’s free online Random Word Generator allows users to generate random word as per their requirements in no time. In the case of our random word generator, a random word is one that cannot be predicted because it is chosen at random from the database of words in our generator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Performing Visual UI Testing With LambdaTest
&lt;/h2&gt;

&lt;p&gt;People just take 10th part of a second to make judgement about a website, so you need to make sure that your website doesn’t have any visual bugs. To make sure of this, LambdaTest’s visual UI testing can help.&lt;/p&gt;

&lt;p&gt;You can perform Screenshot Testing, Responsive Testing, and Smart Testing under LambdaTest’s Visual UI Testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Performing Screenshot Testing With LambdaTest
&lt;/h2&gt;

&lt;p&gt;With LambdaTest’s screenshot testing feature you can take as many as 25 screenshots at a time on different mobile and desktop configurations.&lt;/p&gt;

&lt;p&gt;You need to select the configurations(max. 25), enter the URL and click on ‘Generate’. Once you do so, the screenshots will come up on your screen within a few seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AgNuoe1KEF7WI0RoY.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AgNuoe1KEF7WI0RoY.png" width="546" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can now download the screenshots,if you find any bug then you can mark it , move to some issue tracker tool, or save them.&lt;/p&gt;

&lt;p&gt;As simple as that!&lt;/p&gt;

&lt;p&gt;However, if you are worried about testing the responsiveness of your website, you need to perform responsive testing under Visual UI Testing section.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/rc32-hash-calculator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;RC32 Hash calculator&lt;/a&gt; - RGB and HEX colors both refer to the same thing, a red, green, and blue color value. HEX and RGB are two color languages that refer to themselves using sets of three numbers, rather than letters. HEX numbers can be used in coding, for instance when using the CSS file format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Responsive Testing With LambdaTest
&lt;/h2&gt;

&lt;p&gt;In responsive testing, you can test how your website/ web app responds to various screen sizes with LambdaTest. You have to test your website for certain breakpoints. Based on market research, LambdaTest has selected a combination of various devices having different breakpoints and usability over the world.&lt;/p&gt;

&lt;p&gt;So, you need to enter your URL and click on generate, all the screenshots on the selected devices will be available and you can test if your website is responsive or not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2380%2F0%2AN0cSMQXn-9mzelmO.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2380%2F0%2AN0cSMQXn-9mzelmO.png" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are various other features like defer time, local host testing which adds grace to your testing requirements.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/ripemd160-hash-calculator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;RIPE MD 160 hash calculator&lt;/a&gt; - RIPE MD 160 is a checksum and hash generator for web developers and programmers. This free online tool helps users encrypt their sensitive data, such as passwords and other personal information. The following algorithm will generate a 160-bit message digest from an arbitrary quantity of data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smart Visual UI Testing with LambdaTest
&lt;/h2&gt;

&lt;p&gt;Many times some of the bugs creep in with every new build and our poor eyes can not find them by merely looking at it. This is where LambdaTest’s technology for smart visual UI Testing comes into picture.&lt;/p&gt;

&lt;p&gt;You can find some &lt;a href="https://www.lambdatest.com/blog/common-bugs-in-visual-ui/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;visual bugs&lt;/a&gt; like icon size, text size, font style, images, padding, etc which are difficult to figure out by just uploading screenshots for the same.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2666%2F0%2A1xgfweGCW5ojCOjU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2666%2F0%2A1xgfweGCW5ojCOjU.png" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the color change, you can figure out the visual differences between two or more images or screenshots at a time. You can then mark it as a bug, move to bug management tool, edit it and leverage it in many other ways.&lt;/p&gt;

&lt;p&gt;If you want to know how to perform step by step smart visual visual UI testing, you can &lt;a href="https://www.lambdatest.com/blog/smart-ui-testing-and-integration-with-asana-and-trello/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;read more on it&lt;/a&gt; or also &lt;a href="https://www.lambdatest.com/video.php#visual-ui-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr19_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;watch it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also use LambdaTest’s inbuilt issue tracker if you don’t use a third party bug management tool.&lt;/p&gt;

&lt;p&gt;There are various other features of LambdaTest that are still to unveil 😉 All you have to do is to stay tuned.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>testing</category>
      <category>devops</category>
      <category>database</category>
    </item>
    <item>
      <title>Finding Cross Browser Compatibility Issues in HTML and CSS</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Mon, 18 Apr 2022 12:44:04 +0000</pubDate>
      <link>https://dev.to/testmuai/finding-cross-browser-compatibility-issues-in-html-and-css-p0k</link>
      <guid>https://dev.to/testmuai/finding-cross-browser-compatibility-issues-in-html-and-css-p0k</guid>
      <description>&lt;p&gt;Cross browser compatibility bugs are inevitable for any web project irrespective of whatever platform they are using for development. And most importantly, they keep creeping in at every iteration.&lt;/p&gt;

&lt;p&gt;Since it’s first inception, JavaScript has been the main culprit behind browser compatibility issues, as it was the fastest growing technology of the time. So fast that most browsers had to catch up to give support. However after new HTML5 standards, JS got a new partner in causing havoc. Since HTML and CSS are the simpler languages, people misunderstood them as not being the culprit for &lt;a href="https://www.lambdatest.com/blog/10-ways-to-avoid-cross-browser-compatibility-issues/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr18_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;cross browser compatibility issues&lt;/a&gt;. However, this doesn’t always hold true. Many times the smallest member of the house is the problematic one and may cause a lot of unknown issues.&lt;/p&gt;

&lt;p&gt;So, this may be one of the main reason you need to handle them delicately. But, before you handle them you need to find out the errors first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding and Fixing General Problems
&lt;/h2&gt;

&lt;p&gt;The major problems that usually went unnoticed by us are the most simpler ones. And these problems are so simple that they may pass through our eyes a hundred times and still we fail to figure them.&lt;/p&gt;

&lt;p&gt;It’s just like &lt;em&gt;the&lt;/em&gt; semicolon(;). Syntax errors are the highest cause of high pressure among web developers.&lt;/p&gt;

&lt;p&gt;So, for CSS and HTML you don’t always need to go finding out the semicolon if you just use a validator for the same.&lt;/p&gt;

&lt;p&gt;A validator may help you figure out some mistakes that seem so simple. For HTML, it validates the tags are closed and nested, a DOCTYPE is used, and tags are used correctly while for CSS it checks that the property names and values are spelled correctly, no curly braces are missed, and other CSS properties.&lt;/p&gt;

&lt;p&gt;You can use W3C Markup validation service to validate your website’s HTML code or if you simply want to copy paste your HTML you can use &lt;a href="https://www.freeformatter.com/html-validator.html" rel="noopener noreferrer"&gt;Free Formatter&lt;/a&gt; or &lt;a href="https://jsonformatter.org/html-validator" rel="noopener noreferrer"&gt;JS Formatter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0brw3qbo5uj70k5xw7b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0brw3qbo5uj70k5xw7b.png" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For CSS validation, you can use The W3C CSS Validation Service — W3 Jigsaw or CSS Validation Service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6s7zqbjz96r78ovfpiw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6s7zqbjz96r78ovfpiw.png" width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These validators will help you figuring out the problems but if you also want to go ahead and know the bad practices that you’re using you may need to use a Linter. A linter not only points out the errors but it also flag up the warnings for your bad coding practices.&lt;/p&gt;

&lt;p&gt;There are many linters available online for CSS, HTML, JS and other languages as well. The best of which are: Dirty Markup (for CSS, JS, HTML), CSS Lint( specially for CSS), JS Lint(for JS only).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0d5u1lh9w4i5de693xe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0d5u1lh9w4i5de693xe.png" width="238" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/placeholder-image-generator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr18_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Placeholder Image Generator&lt;/a&gt; - A placeholder image is a visual representation of an idea or concept before the final image has been created. Designers commonly make use of “placeholder” images in an early design stage. Just enter the width and height of an image to generate it in either JPG or PNG format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hunting Common Errors
&lt;/h2&gt;

&lt;p&gt;Using validators and linters, you can beautify your code and figure out common problems but if you are on a hunt for finding the errors you can use one inbuilt feature in your &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr18_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;browser&lt;/a&gt;, ‘developer tools’.&lt;/p&gt;

&lt;p&gt;This works well for CSS errors as HTML errors normally don’t tend to show up in dev tools as they try to cover them up by correcting badly formed markup automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AXlgH-4a1HxdHN2db.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AXlgH-4a1HxdHN2db.png" width="578" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can find out errors as mentioned: Invalid property type.&lt;/p&gt;

&lt;p&gt;These sort of errors may point out to be some of many reasons which causes cross browser incompatibility as some browsers do not support some specific CSS and HTML elements and you can go ahead for finding these elements.&lt;/p&gt;

&lt;p&gt;This certification is for anyone who wants to stay ahead among professionals who are growing their career in Selenium automation testing.&lt;/p&gt;

&lt;p&gt;Here’s a short glimpse of the Selenium 101 certification from LambdaTest:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/qx9FPFfJm7E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/random-binary-generator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr18_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Random Password Generator&lt;/a&gt; - Random Binary Generator generates random binary numbers of a specified length. It can be configured with the number of binary digits, and total digits wanted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unsupported CSS Elements in Browsers
&lt;/h2&gt;

&lt;p&gt;Older versions of Internet Explorer, one of still the most used browsers doesn’t support many CSS elements some of which are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CSS3 selectors&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS Counters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS3 Box-sizing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS font-stretch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS namespaces&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS3 Colors&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See full list of &lt;a href="https://caniuse.com/?compare=ie+6,ie+7,ie+8,ie+9,ie+10,ie+11&amp;amp;compareCats=all" rel="noopener noreferrer"&gt;unsupported CSS elements in all internet explorer browsers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Similarly, some older Google Chrome versions doesn’t support the following CSS elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CSS overscroll-behavior&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS display: contents&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS Paint API&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSSOM Scroll-behavior&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS Scroll snap points&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS Conical Gradients&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS font-size-adjust&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2424%2F0%2A0CVwt1v7isdaRGft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2424%2F0%2A0CVwt1v7isdaRGft.png" alt="*Unsupported CSS Elements in any latest chrome browsers*" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;[Unsupported CSS Elements in any latest chrome browsers](https://www.lambdatest.com/blog/wp-content/uploads/2018/05/5-2.png)&lt;/center&gt;

&lt;p&gt;Similarly, you can check for any of the CSS elements that you are using in your website that what are the browsers that don’t support those elements. Unsupported CSS elements cause &lt;a href="https://www.lambdatest.com/feature?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr18_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;cross browser compatibility&lt;/a&gt; issues.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/random-character-generator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr18_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Random Character Generator&lt;/a&gt; - The Random Character Generator is an essential tool if you want to avoid patterns when generating a unique set of strings. The utility generates a sequence that doesn’t follow any recognizable pattern and is random.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML Issues in Browsers
&lt;/h2&gt;

&lt;p&gt;If you are willing to figure out the HTML issues, then the first and foremost thing to do is to check for the DOCTYPE. Have you used it?&lt;/p&gt;

&lt;p&gt;And once you verify this, you need to make sure that you’re not using any of the third party code. Many times when you use a third-party code, you might find that the HTML generated by the third party app may be using class ID or Name that you’re using for a different purpose in your code. Hence that might a big problem and becomes hard to debug as it will not show any error however you’ll find the difference in the rendering of HTML causing cross-browser issues.&lt;/p&gt;

&lt;p&gt;Many older versions of Internet explorer browser do not support HTML elements like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Video element&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audio element&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search input type&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Form validation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multiple file selection&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Offline web applications&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See full list of unsupported HTML elements in all internet explorer browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2404%2F0%2ABQMVPSN4579bOt6o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2404%2F0%2ABQMVPSN4579bOt6o.png" alt="*Unsupported CSS Elements in internet explorer browser*" width="800" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;[Unsupported CSS Elements in internet explorer browser](https://www.lambdatest.com/blog/wp-content/uploads/2018/05/6.png)&lt;/center&gt;

&lt;p&gt;Go ahead, test your website across various browser combinations and figure out what went wrong, which unsupported CSS and HTML elements are you using in your website and now it’s turn to rectify them. Because it’s better late than never.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>html</category>
      <category>testing</category>
    </item>
    <item>
      <title>Automated Cross Browser Testing</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Thu, 14 Apr 2022 09:28:37 +0000</pubDate>
      <link>https://dev.to/testmuai/automated-cross-browser-testing-4bb3</link>
      <guid>https://dev.to/testmuai/automated-cross-browser-testing-4bb3</guid>
      <description>&lt;p&gt;Testing a website in a single browser using automation script is clean and simple way to accelerate your testing. With a single click you can test your website for all possible errors without manually clicking and navigating to web pages. A modern marvel of software ingenuity that saves hours of manual time and accelerate productivity. However for all this magic to happen, you would need to build your automation script first.&lt;/p&gt;

&lt;p&gt;In our previous post we focused on setting up &lt;a href="https://www.lambdatest.com/blog/a-complete-guide-for-your-first-testng-automation-script/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr14_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;complete test suite environment for running selenium script&lt;/a&gt;s. But that script had a major drawback. That setup was focused on testing on only a single browser. Cross browser compatibility testing is a major pain point for all testers and it’s also a major test case for all functionality testing cycles.&lt;/p&gt;

&lt;p&gt;In this post we will focusing on running testing scenarios on Chrome, Firefox, and Opera browsers simultaneously. We would be focusing on cross browsers issues along with functional issues.&lt;/p&gt;

&lt;p&gt;It will not only save your time and efforts but will also help you deliver a seamless experience to the user of your website. Well, that’s the idea behind cross browser testing. Isn’t it?&lt;/p&gt;

&lt;p&gt;Before starting, I would highly recommend going through our previous post on writing automation testing scripts.&lt;/p&gt;

&lt;p&gt;Since we last left, you may now need to continue that further by some more modifications. Get started step by step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Maven
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Go to Marketplace and install Maven.&lt;/p&gt;

&lt;p&gt;Go to help → Eclipse Marketplace → search for Maven→ confirm → confirm → Finish&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9m6u0wmm8k71pgglhfyt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9m6u0wmm8k71pgglhfyt.png" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrys8jpv1yah82wm7hhr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrys8jpv1yah82wm7hhr.png" width="551" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A2fIc0R25wnRmjirD.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A2fIc0R25wnRmjirD.png" width="547" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AHrg6M3RKowEUikDd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AHrg6M3RKowEUikDd.png" width="547" height="716"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A739tJB-jG9q2pvbT.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A739tJB-jG9q2pvbT.png" width="703" height="713"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/crc32-hash-calculator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr14_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;CRC32 Hash calculator&lt;/a&gt; - This CRC32 hash generator lets you quickly generate the CRC32 checksum hash from a given string. In addition, you can generate CRC32 hashes via your web browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Restart Eclipse
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Restart the Eclipse to make changes effective. Once you restart the eclipse, it’s time to start with creating the project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AFBZM4hD87qk4YO8i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AFBZM4hD87qk4YO8i.png" width="517" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/character-count?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr14_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Character Count&lt;/a&gt; - The character count allows programmers to calculate the length of any given string of text or numbers in order to check the total number of characters (including spaces) there are in the string.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a Maven Project
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; To create project, go to File→ New→ Other→ Maven→ Project&lt;br&gt;
You are now all set to create a maven project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2730%2F0%2Ab5wU9c9lMlmWeFxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2730%2F0%2Ab5wU9c9lMlmWeFxt.png" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F548mr1b9l4nk5d3ifjll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F548mr1b9l4nk5d3ifjll.png" width="525" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AAndkn-IOvIeE6WTU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AAndkn-IOvIeE6WTU.png" width="670" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2ALZJzC-Mk7xRah7yK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2ALZJzC-Mk7xRah7yK.png" width="670" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here you need to enter the group ID and artifact ID. Let’s say group ID is com.browsers1 and artifact ID is crossbrowser.&lt;/p&gt;

&lt;p&gt;After entering the IDs click on Finish and your maven project will be created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1gjya1tg1nn0s0dcylt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1gjya1tg1nn0s0dcylt.png" width="670" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the left hand side, you’ll find two folders namely src/main/java and src/test/java. Under src/test/java you’ll find com.browsers1.crossbrowser. Right click on com.browsers1.crossbrowser select new and then create a class.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2714%2F0%2AQdYI8lXlS048gC1F.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2714%2F0%2AQdYI8lXlS048gC1F.png" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AtmzDDjNwcWBYy7Um.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AtmzDDjNwcWBYy7Um.png" width="542" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter the name as CrossbrowserTest and click on finish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;em&gt;Make sure you start your class name with uppercase and end it with test&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Download drivers
&lt;/h2&gt;

&lt;p&gt;The next step is to install drivers for browsers. Since you are going to control your browsers using automated softwares so you need to make sure that the browsers that you’re going to use in your script should have their drivers installed.&lt;/p&gt;

&lt;p&gt;For firefox you need to install Geckodriver. For chrome, chromedriver and for opera install operachromiumdriver. Since we are going to use these three browsers in our script so we’ll need to install these. However, if you plan to add more browsers to your script make sure to have their drivers installed.&lt;/p&gt;

&lt;p&gt;After you download and install drivers, let’s start with adding dependency files. It is necessary to have dependency files for every framework that you are making use of. So we need to download dependency files for Selenium, Testng in pom.xml file.&lt;/p&gt;

&lt;p&gt;Select pom.xml and delete the lines between to and add your dependency files using:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;org.testng
   testng
   6.14.3
   test

&amp;lt;!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin --&amp;gt;

org.apache.maven.plugins
   maven-surefire-plugin
   2.19.1

&amp;lt;!-- https://mvnrepository.com/artifact/javax.mail/mail --&amp;gt;

            javax.mail
            mail
            1.5.0-b01

org.seleniumhq.selenium
            selenium-htmlunit-driver
            2.52.0

junit
            junit
            4.12

info.cukes
            cucumber-java
            1.2.5
            test

info.cukes
            cucumber-picocontainer
            1.2.5
            test

info.cukes
            cucumber-junit
            1.2.5
            test

org.seleniumhq.selenium
            selenium-java
            3.11.0

org.seleniumhq.selenium
            selenium-firefox-driver
            3.5.3

org.seleniumhq.selenium
            selenium-chrome-driver
            3.5.3

org.seleniumhq.selenium
            selenium-ie-driver
            3.5.3

org.seleniumhq.selenium
            selenium-edge-driver
            3.5.3

org.apache.maven.plugins
            maven-resources-plugin
            3.0.2

org.seleniumhq.selenium
            selenium-support
            3.5.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This code will add all your dependency files to your project.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/bcd-to-decimal?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr14_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;BCD to Decimal&lt;/a&gt; - In computing and electronic systems, a binary-coded decimal (BCD) is a method of representing each decimal digit by its binary sequence. The BCD to Decimal Converter (BDC) converts a binary-coded decimal (BCD) to an integer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write Final Code
&lt;/h2&gt;

&lt;p&gt;Now save this and move to creating a script for final step.&lt;/p&gt;

&lt;p&gt;Again go to src/test/java select crossbrowsertest.java and then copy the code to its workplace.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String baseUrl = "https://www.amazon.com/";
         String expectedTitle = "Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs &amp;amp;amp; more";
         String actualTitle = "";
         // launch Chrome and direct it to the Base URL
         driver.get(baseUrl);
         // get the actual value of the title
         actualTitle = driver.getTitle();
         /*
          * compare the actual title of the page with the expected one and print
          * the result as "Passed" or "Failed"
          */
         AssertJUnit.assertEquals(expectedTitle, actualTitle);

         //close Fire fox
         driver.close();

     }

     @Test
     public void AmazonTitleTest2() {
         // declaration and instantiation of objects/variables

         //comment the above 2 lines and uncomment below 2 lines to use Chrome
      System.setProperty("webdriver.ie.driver", "C:/Users/Admin/Downloads/IEDriverServer.exe");
   driver = new InternetExplorerDriver();
         String baseUrl = "https://www.amazon.com/";
         String expectedTitle = "Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs &amp;amp;amp; more";
         String actualTitle = "";
         // launch Chrome and direct it to the Base URL
         driver.get(baseUrl);
         // get the actual value of the title
         actualTitle = driver.getTitle();
         /*
          * compare the actual title of the page with the expected one and print
          * the result as "Passed" or "Failed"
          */
         AssertJUnit.assertEquals(expectedTitle, actualTitle);

         //close Fire fox
         driver.close();

     }

 }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once you paste this code, you now need to convert it to testng.xml.&lt;/p&gt;

&lt;p&gt;To proceed with that Right click on Crossbrowsertest.java click on testng→ convert to testng→ next→ click the checkbox→ finish.&lt;/p&gt;

&lt;p&gt;Now a new file, testng.xml will be created.&lt;/p&gt;

&lt;p&gt;Run testng.xml as a testng suite and you’re all set to perform automated cross browser test.&lt;/p&gt;

&lt;p&gt;This code will run amazon.com on chrome, mozilla, and opera and test if the website opens or not. If it opens, it will show pass else will show fail.&lt;/p&gt;

&lt;p&gt;You’ll soon see an automation software controlling your three browsers and you’ll also see the test being performed on your screen.&lt;/p&gt;

&lt;p&gt;You can also add more browsers and change the URL you want to perform the test on.&lt;/p&gt;

&lt;p&gt;If you want to cross check the same using manual cross browser testing, you can always do so using LambdaTest. It provides you 3000+ browsers and OS combinations to test on. Soon, you’ll also find LambdaTest to help you perform &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr14_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;automated cross browser testing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Till then stay tuned and Happy Testing!&lt;/p&gt;

</description>
      <category>automation</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>testing</category>
    </item>
    <item>
      <title>Typography And Cross Browser Compatibility Testing</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Wed, 13 Apr 2022 10:23:09 +0000</pubDate>
      <link>https://dev.to/testmuai/typography-and-cross-browser-compatibility-testing-56j5</link>
      <guid>https://dev.to/testmuai/typography-and-cross-browser-compatibility-testing-56j5</guid>
      <description>&lt;p&gt;Colors, icons, images, content, layout, design elements, animations, functionalities, hover elements, buttons, lines, and typography all come together in a unique blend of harmony to make the web design a work of art. It’s a collection of thousands of different web elements coming together to convey a message in the most innovative way possible. In this symphony, Typography plays a major role. A good font can drastically change the whole design.&lt;/p&gt;

&lt;p&gt;But sometimes amidst of using beautiful fonts we forget to take care of their compatibility. Font formats that we use are not always compatible with every browser. So if a font is looking beautiful in Mozilla doesn’t imply that will look the same in &lt;a href="https://www.lambdatest.com/test-on-opera-53-browser-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr13_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Opera&lt;/a&gt; too because may be Opera doesn’t support the underlying tag itself.&lt;/p&gt;

&lt;p&gt;So, while going for selecting a font format, you need to be sure that the one that you’re going to use is compatible with all browsers and will render the same irrespective of the browser used.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to make sure which font format to use and when?
&lt;/h2&gt;

&lt;p&gt;Well, there are many types of font formats available with the most common ones like EOT, OTF, TTF, WOFF, SVG. You may find it very amazing to select from a huge palette but it isn’t as simple as it sounds because there is not even a single font format that is supported in all the browsers. So you have to somehow use the combinations of font formats to make it support in all browsers.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/bigint?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr13_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;BigInt&lt;/a&gt; - BigInt is a library for arbitrary-precision integers in JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the font format choices you have?
&lt;/h2&gt;

&lt;p&gt;You’ll find a wide choice of font formats while designing your website. The various file extensions that you’ll come across include:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;th&gt;File Types&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;.ABF&lt;/td&gt;
&lt;td&gt;Adobe Binary Screen Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.ACFM&lt;/td&gt;
&lt;td&gt;Adobe Composite Font Metrics File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.AFM&lt;/td&gt;
&lt;td&gt;Adobe Font Metrics File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.AMFM&lt;/td&gt;
&lt;td&gt;Adobe Multiple Font Metrics File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.BDF&lt;/td&gt;
&lt;td&gt;Glyph Bitmap Distribution Format&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.CHA&lt;/td&gt;
&lt;td&gt;Character Layout File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.CHR&lt;/td&gt;
&lt;td&gt;Borland Character Set File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.COMPOSITEFONT&lt;/td&gt;
&lt;td&gt;Windows Composite Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.DFONT&lt;/td&gt;
&lt;td&gt;Mac OS X Data Fork Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.EOT&lt;/td&gt;
&lt;td&gt;Embedded OpenType Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.ETX&lt;/td&gt;
&lt;td&gt;TeX Font Encoding File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.EUF&lt;/td&gt;
&lt;td&gt;Private Character Editor File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.F3F&lt;/td&gt;
&lt;td&gt;Crazy Machines Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.FEA&lt;/td&gt;
&lt;td&gt;AFDKO Feature Definitions File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.FFIL&lt;/td&gt;
&lt;td&gt;Mac Font Suitcase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.FNT&lt;/td&gt;
&lt;td&gt;Windows Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.FON&lt;/td&gt;
&lt;td&gt;Generic Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.FOT&lt;/td&gt;
&lt;td&gt;Font Resource File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.GDR&lt;/td&gt;
&lt;td&gt;Symbian OS Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.GF&lt;/td&gt;
&lt;td&gt;METAFONT Bitmap File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.GLIF&lt;/td&gt;
&lt;td&gt;Glyph Interchange Format File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.GXF&lt;/td&gt;
&lt;td&gt;General CADD Pro Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.LWFN&lt;/td&gt;
&lt;td&gt;Adobe Type 1 Mac Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.MCF&lt;/td&gt;
&lt;td&gt;Watchtower Library Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.MF&lt;/td&gt;
&lt;td&gt;METAFONT File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.MXF&lt;/td&gt;
&lt;td&gt;Maxis Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.NFTR&lt;/td&gt;
&lt;td&gt;Nintendo DS Font Type File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.ODTTF&lt;/td&gt;
&lt;td&gt;Obfuscated OpenType Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.OTF&lt;/td&gt;
&lt;td&gt;OpenType Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.PCF&lt;/td&gt;
&lt;td&gt;PaintCAD Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.PFA&lt;/td&gt;
&lt;td&gt;Printer Font ASCII File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.PFB&lt;/td&gt;
&lt;td&gt;Printer Font Binary File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.PFM&lt;/td&gt;
&lt;td&gt;Printer Font Metrics File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.PFR&lt;/td&gt;
&lt;td&gt;Portable Font Resource File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.PK&lt;/td&gt;
&lt;td&gt;Packed METAFONT File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.PMT&lt;/td&gt;
&lt;td&gt;PageMaker Template File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.SFD&lt;/td&gt;
&lt;td&gt;Spline Font Database File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.SFP&lt;/td&gt;
&lt;td&gt;Soft Font Printer File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.SUIT&lt;/td&gt;
&lt;td&gt;Macintosh Font Suitcase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.TFM&lt;/td&gt;
&lt;td&gt;PageMaker Template File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.TTC&lt;/td&gt;
&lt;td&gt;TeX Font Metric File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.TTE&lt;/td&gt;
&lt;td&gt;TrueType Font Collection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.TTF&lt;/td&gt;
&lt;td&gt;Private Character Editor File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.TXF&lt;/td&gt;
&lt;td&gt;Celestia Font Texture File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.UFO&lt;/td&gt;
&lt;td&gt;Unified Font Object File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.VFB&lt;/td&gt;
&lt;td&gt;FontLab Studio Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.VLW&lt;/td&gt;
&lt;td&gt;Processing Font File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.VNF&lt;/td&gt;
&lt;td&gt;Vision Numeric Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.WOFF&lt;/td&gt;
&lt;td&gt;Web Open Font Format File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.WOFF2&lt;/td&gt;
&lt;td&gt;Web Open Font Format 2.0 File&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.XFN&lt;/td&gt;
&lt;td&gt;Ventura Printer Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.XFT&lt;/td&gt;
&lt;td&gt;ChiWriter Printer Font&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.YTF&lt;/td&gt;
&lt;td&gt;Google Picasa Font Cache&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Out of all these formats, the most common ones are EOT, OTF, TTF, WOFF, SVG. So, I’ll focus around the compatibility of these formats.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/date-tolocaledatestring?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr13_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;Date.prototype.toLocaleDateString&lt;/a&gt; - date-to-localizeddatestring method generates a language-sensitive representation of a given date, formatted according to locale, options.&lt;/p&gt;

&lt;h2&gt;
  
  
  EOT (Embedded Open Type Font)
&lt;/h2&gt;

&lt;p&gt;EOT font type font was discovered by Microsoft 15 years back. This font format is supported on only Internet explorer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2446%2F1%2Avnnn3tOIFmLgInDLpENIqQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2446%2F1%2Avnnn3tOIFmLgInDLpENIqQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TTF( TrueType Font)
&lt;/h2&gt;

&lt;p&gt;TTF was developed by Apple and Microsoft late in 1980s. It is the most common font format for both Windows and Macintosh operating systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2446%2F0%2A9H4sUv1aSJB4vkCk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2446%2F0%2A9H4sUv1aSJB4vkCk.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  OTF(OpenType Font)
&lt;/h2&gt;

&lt;p&gt;An evolution of TTF, OTF is developed by combined efforts of Adobe and Microsoft. Supported in Mac and Windows OS OTF provides support for various platforms and has expanded character sets. It support is same for browsers as of TTF.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/es5?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr13_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;ECMAScript 5&lt;/a&gt; - es5 provides extensive support for a full and modern JavaScript environment, including support for ECMAScript 5 and the vast majority of common JavaScript libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  WOFF( Web OpenFont Format)
&lt;/h2&gt;

&lt;p&gt;As the name suggests, WOFF is an essential font format for web pages. The major feature that WOFF provides is fast loading web pages since it uses the compressed versions of TTF and OTF fonts. Developed by Mozilla in 2009, WOFF is now a W3C recommendation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2448%2F0%2A9CFfRF7gs0WXlASz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2448%2F0%2A9CFfRF7gs0WXlASz.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2448%2F0%2AzJQwKY2PU0Em-mEC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2448%2F0%2AzJQwKY2PU0Em-mEC.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The upgraded version of WOFF, WOFF2 has support for different browser sets:&lt;/p&gt;

&lt;h2&gt;
  
  
  SVG(Scalable Vector Graphics Font)
&lt;/h2&gt;

&lt;p&gt;SVG fonts files contain the glyph outlines which are generally represented as standard SVG elements and attributes, just like they were single vector objects in the SVG image. These files have pretty large size and are uncompressed unlike EOT, WOFF.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2436%2F0%2AQPdTmG4a-xjVaRFO.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2436%2F0%2AQPdTmG4a-xjVaRFO.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Browsers And Font Format Support
&lt;/h2&gt;

&lt;p&gt;The major issue that you might face is your font don’t render properly in all browsers so you have to make sure that you add font files to your web code. To make sure of this, you need to be aware the font format support in various browsers. Table depicts the support for various font types in different desktop browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AbnZcoU7YRwESgmxb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AbnZcoU7YRwESgmxb.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For mobile browsers the font format support goes as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AxyUfkxIPJNYSO6N7QVlxjw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AxyUfkxIPJNYSO6N7QVlxjw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, there is no single font format that is supported in all browsers and browser versions. As you may notice, TTF and WOFF file formats are supported in nearly all latest web browsers (except opera mini). As a developer it would make your life quite easier if you use TTF and WOFF web formats. But still, you would need to have a combinations of font formats to make all the fonts supported in all browsers.&lt;/p&gt;

&lt;p&gt;You can use caniuse to find out version support in font formats based on your &lt;a href="https://www.lambdatest.com/blog/cross-browser-testing-strategy-explained-in-three-easy-steps/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr13_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;cross browser support strategy&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How To Avoid Browser Font Incompatibility?
&lt;/h2&gt;

&lt;p&gt;Knowing which browsers support a font family is one thing and making them support is another. So to make sure that your font family is rendered properly in every browser even if the user doesn’t have the font family installed on his local computer is to use @font-face in CSS style.&lt;/p&gt;

&lt;p&gt;Addition of @font-face allows a webpage to download the font from the hosted location and display it in the CSS as specified.&lt;/p&gt;

&lt;p&gt;Add the code to use stylesheet before any styles:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once you make sure to add the above code, you can use it to style elements like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;body {
  font-family: 'MyWebFont', Fallback, sans-serif;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If you want to style a heading, this code format can be used:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
font-family: DeliciousRoman, Helvetica, Arial, sans-serif;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You can see a working example of how you can use it on w3schools.&lt;/p&gt;

&lt;p&gt;Using a bold font:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@font-face {
    font-family: myFirstFont;
    src: url(sansation_bold.woff);
    font-weight: bold;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This might help you make support font formats in all browsers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixed? Now It’s Time For Some Cross Browser Testing.
&lt;/h2&gt;

&lt;p&gt;Having made sure that your browsers render all the fonts properly in all browsers you need to test them if it is fixed or not. For this, you need to &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr13_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;test your website for cross browser compatibility&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Font rendering is a part of visual appeal. You can use LambdaTest’s &lt;a href="https://accounts.lambdatest.com/register?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr13_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Visual UI testing feature&lt;/a&gt; to test visual appearance of your website. Take screenshots on various browsers and compare them if they look the same.&lt;/p&gt;

&lt;p&gt;So, it’s time you checked your website if the fonts render properly for your users too or it just looks perfect for you.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Cross Browser Testing Checklist Before Going Live</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Tue, 12 Apr 2022 10:31:32 +0000</pubDate>
      <link>https://dev.to/testmuai/cross-browser-testing-checklist-before-going-live-1nc1</link>
      <guid>https://dev.to/testmuai/cross-browser-testing-checklist-before-going-live-1nc1</guid>
      <description>&lt;p&gt;When someone develops a website, going live it’s like a dream come true. I have also seen one of my friends so excited as he was just about to launch his website. When he finally hit the green button, some unusual trend came suddenly into his notice. After going into details, he found out that the website has a very high bounce rate on Mobile devices. Thanks to Google Analytics, he was able to figure that out.&lt;/p&gt;

&lt;p&gt;The website was unbelievable on mobile devices, all the elements left their place and logo was not even fit to screen. That day taught him a lesson, and he passed me on the same, ‘&lt;strong&gt;&lt;em&gt;Go through a checklist for cross browser testing before going live&lt;/em&gt;&lt;/strong&gt;’.&lt;/p&gt;

&lt;p&gt;Cross browser testing is very necessary in this digital world where everyone is browsing the website on a different platform, OS, browser, and you can’t even think of that beforehand. Formulating a perfect &lt;a href="https://www.lambdatest.com/blog/cross-browser-testing-strategy-explained-in-three-easy-steps/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;cross browser testing strategy&lt;/a&gt; might help you in that but sometimes even after that you need to be prepared for some un-welcomed bugs. However, a proper checklist might help you avoid them or figure them out before anyone else does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handy Requirements For Using The Cross Browser Testing Checklist
&lt;/h2&gt;

&lt;p&gt;Before going on for the checklist you need to make sure that you know how to perform cross browser testing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you are going to perform cross browser testing, you must need what all &lt;a href="https://www.lambdatest.com/blog/5-tips-on-choosing-the-right-browser-list-for-cross-browser-testing/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;browsers and devices are you going to test on&lt;/a&gt;. So, formulate a proper cross browser testing strategy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When done with cross browser testing strategy, make sure you &lt;a href="https://www.lambdatest.com/local-page-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;test your locally hosted website&lt;/a&gt; or dev site on cross browser testing tool like &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;LambdaTest&lt;/a&gt; before going live. The platform has a feature called LambdaTest Tunnel that give you flexibility to connect your locally hosted websites or web apps to test on cloud for cross browser testing using SSH tunnel feature. Cross browser compatibility and cross browser accessibility effects your website’s SEO as well therefore it’s always important to get thoroughly tested and perfectly compatible site indexed on search engines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep mobile devices handy, or you can also set up emulators or simulators. If you want avoid that too, use a platform that can provide you all the devices handy. LambdaTest also provides you a wide range of iOS and Android mobile devices to test upon.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once done with the prerequisites, the immediate step is to go through the checklist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Ultimate Checklist For Cross Browser Tests Before Going Live
&lt;/h2&gt;

&lt;p&gt;The checklist contains various elements that need to be tested before going live in your local environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alignment of Elements in All Browsers
&lt;/h2&gt;

&lt;p&gt;Make sure that the elements are in the correct place that you intend them to be in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verification of SSL in Various Browsers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxfd7cjjdhis215i1s7q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxfd7cjjdhis215i1s7q.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have faced this error, one of the reasons can be that your website’s SSL certificate doesn’t support some of the browser versions. If your user try to access your website those browser versions, then they might not be able to access it at all. So, check your website’s SSL certificates in all browsers before going live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rendering of Font in Different Browsers
&lt;/h2&gt;

&lt;p&gt;Who don’t love beautiful fonts on their website, however they can cause blunders if they don’t render properly. Rendering of fonts is highly affected by the browser in which your site is being browsed. So, you need to make sure that your fonts render the same in every web browser.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/es6-string-includes?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;String.prototype.includes&lt;/a&gt; - The includes() method determines whether one string may be found within another string.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compatibility of Media Elements with Diverse Browsers
&lt;/h2&gt;

&lt;p&gt;Videos are the most loved form of media nowadays. Web designers and developers have been taking advantage of the fact and you can easily find either a demo video or some tutorial video running on the homepage of a website. But browser compatibility can cause you trouble if you some use unsupported media elements and that’s not restricted just to videos, but to images as well. So before going live make sure that you use those elements that are supported in all browsers or you have a fallback for unsupported elements so that your users don’t face this!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbqkn7u9hgjlelkoxfjt.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbqkn7u9hgjlelkoxfjt.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Understand &lt;a href="https://www.lambdatest.com/blog/incompatible-multimedia-formats-to-look-out-for-in-2018/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Multimedia compatibility with Different Browsers&lt;/a&gt; in detail in our blog.&lt;/p&gt;

&lt;p&gt;Note - &lt;a href="https://www.lambdatest.com/web-technologies/arrow-functions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;Arrow functions&lt;/a&gt; - Manage function and class scopes with the arrow &lt;code&gt;=&amp;gt;&lt;/code&gt; function syntax and lexical &lt;code&gt;this&lt;/code&gt; binding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Are Your APIs Connected in All Browsers?
&lt;/h2&gt;

&lt;p&gt;API calls are also dependent upon browsers. Some browsers acknowledges API requests while others might avoid this or throw you an error. Before going live, always be sure that the APIs that you’re using are connected in every browser. Because there are some browsers like Opera Mini that don’t support APIs like Websocket.&lt;/p&gt;

&lt;p&gt;Also some API call methods like getUserMedia/Stream will throw you an error on Opera Mini, iOS Safari 10.3, IE 11. So, you need to be sure that your &lt;a href="https://www.lambdatest.com/blog/api-and-browser-compatibility/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;APIs are browser compatible&lt;/a&gt; before going live else when you are on the public server your users might face unconnected to the worlds.&lt;/p&gt;

&lt;p&gt;Note - &lt;a href="https://www.lambdatest.com/web-technologies/async-functions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;Async functions&lt;/a&gt; - Async functions make it possible to write asynchronous code that reads like synchronous code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make Sure You Validate Your CSS And HTML
&lt;/h2&gt;

&lt;p&gt;Tags left open can be nightmares for developers and horrifying for the users if they see the code live on screen. So, it’s mandatory to make sure that the code is clean and properly validated. W3schools have a soft corner for the same. You can easily validate your HTML,JS, and CSS before going live on tools like W3C Markup validation service, Free Formatter or JS Formatter, W3C CSS Validation Service — W3 Jigsaw or CSS Validation Service.&lt;/p&gt;

&lt;p&gt;Browser Compatibility issues can be found to a greater extent using these tools and you can further proceed with solving them.&lt;/p&gt;

&lt;p&gt;After checking out all the major compatibility issues, you need to perform a round of cross browser testing in general taking of minor but important factors like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alignment of elements:&lt;/strong&gt; Are all the elements aligned the way you want them to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pop Ups:&lt;/strong&gt; Check if the pop ups are being displayed properly and are opening in all browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alignment of checkboxes:&lt;/strong&gt; Checkboxes can cause problems in many browsers. Make sure that your checkboxes are aligned and in proper working condition.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alignment and functioning of Buttons:&lt;/strong&gt; Buttons hold a major part when it comes to CTAs or any other action so you need to be sure that they are aligned and properly working across diverse browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;URLs redirection from buttons:&lt;/strong&gt; Check the links to which the buttons are redirecting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Drop down Menus:&lt;/strong&gt; Verify that the drop downs work as expected across all browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Forms and Form APIs:&lt;/strong&gt; Make sure that the forms take in data and the data is transferred to the collecting API endpoint intact.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Grids/Tables:&lt;/strong&gt; Check the alignment and location of tables and grids if any across every browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sessions and cookies:&lt;/strong&gt; If your website uses cookies, verify that the prompt is there and it works accordingly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dates:&lt;/strong&gt; Test if the date formats as decided in every browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zoom in and Zoom out functionality:&lt;/strong&gt; Check if the zoom in and zoom out functionality works properly and doesn’t break the UI when in action.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Appearance of scroll:&lt;/strong&gt; Check if the scroll is present on both horizontal and vertical bars and is functional.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flash:&lt;/strong&gt; Make sure that Flash supported videos, animations, RIAs, and applications work cross browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HTML animations:&lt;/strong&gt; Verify if your animations load across all browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mouse hovering:&lt;/strong&gt; Check if the mouse adjusts to the button, text box, link, and white space accordingly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Image alignment:&lt;/strong&gt; Make sure that all the images are aligned and in place across different browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alt tags:&lt;/strong&gt; Alt-tags are again important and we need to be sure that they are in place.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And everything else that you can think of in every possible browser, OS, and device combination.&lt;/p&gt;

&lt;p&gt;As we can see here, there are various things to be tested in a local environment across thousands of combinations for making sure it doesn’t hinder the experience of the users once the website is made live. So, we need to make sure that we test on all possible combinations to avoid further surprises. Since, many of the following tests are repetitive and time consuming, so we can make use of an online Selenium grid for &lt;a href="https://www.lambdatest.com/blog/automated-cross-browser-testing/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;automating cross browser tests&lt;/a&gt;. With such automation, you can avoid repetitive and time consuming tasks and automate them using a simple script.&lt;/p&gt;

&lt;p&gt;LambdaTest also provides you an &lt;a href="https://www.lambdatest.com/selenium-grid-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr12_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;online selenium grid&lt;/a&gt; on which you can automate your tests on both public and local servers and test on LambdaTest cloud grid of more than 3000+ devices, browsers, browser versions, and resolution combinations. Hence, you need to make sure that you find the best cross browser testing tool and then you can perform tests on your checklist, some manually while others using automation.&lt;/p&gt;

&lt;p&gt;Once you’re done with testing this cross browser testing checklist, you’re all set to go live and hit the green button. I hope you might not face the situation like my friend because you’re smart enough not to repeat the same mistake.&lt;/p&gt;

&lt;p&gt;Let us know if I missed something that should be included in the checklist in the comments section below! Till then, Happy Testing and all the best for the launch!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>testing</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Top 10 Books for Getting Started with Automation Testing</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Mon, 11 Apr 2022 09:47:16 +0000</pubDate>
      <link>https://dev.to/testmuai/top-10-books-for-getting-started-with-automation-testing-4gkp</link>
      <guid>https://dev.to/testmuai/top-10-books-for-getting-started-with-automation-testing-4gkp</guid>
      <description>&lt;p&gt;Are you looking for the top books for Automation Testers? Ah! That’s why you are here. When I hear the term book, This famous saying always spins up in my head.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There is no friend as loyal as a book.- Ernest Hemingway&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, books have always been a man’s best friend for a long time. Digitalization has changed our way of reading. Kindles, blogs, pdfs, have evolved like a beast however, the pleasure and knowledge gained from hardcover books is incomparable. But when it comes to finding out the top books it requires a lot of research. Everyone is very much inclined towards the digital world, always indulged in computer screens doing their work and when they get stuck they have to again withstand the screen to find out the solution.&lt;/p&gt;

&lt;p&gt;Reading hardcover books in that case, gives a relief. So, here we have compiled a list of best books for automation testers which they must read once in their lifetime.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
&lt;/h3&gt;

&lt;p&gt;The first step you take towards being an automation test engineer is towards learning coding. Coding is not the challenge for most of the developers out there however developing a clean and readable code is. This book is the first read book for every automation tester and a beginner in development. In this book, you’ll get to know about meaningful names, comments, formatting, error structures, classes, systems, concurrency, emergence, and a lot more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AbKBquRGAcA86JT6G2vDdsQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AbKBquRGAcA86JT6G2vDdsQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Just Enough Software Test Automation by Daniel J. Mosley and Bruce A. Posey
&lt;/h3&gt;

&lt;p&gt;This book is just enough for every test automation engineer. One of the best books that are loved by beginners to advanced level automation test engineers. In this book you’ll learn what and when to automate, test requirements, creating a test case, automating unit testing, development of automation test script, automated integration testing, automated regression testing, and a huge mountain of automation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AiUdFEFe1r6qSyuWXZLYWrQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AiUdFEFe1r6qSyuWXZLYWrQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality by Elfriede Dustin, Thom Garrett, Bernie Gauf
&lt;/h3&gt;

&lt;p&gt;As the name suggests this book will help you implement automated software testing(AST) while maintaining quality and lowering cost and reducing time. My famous chapter in the book is ‘Why software testing fails and pitfalls to avoid’. Along with this you’ll also learn some lessons with this book like how to automate, testing of AST framework, developing a test automation strategy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Aq6kw95aIw2H27VYhhcswXw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Aq6kw95aIw2H27VYhhcswXw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Software Test Automation: Effective Use of Test Execution Tools by Mark Fewster and Dorothy Graham
&lt;/h3&gt;

&lt;p&gt;In this book, you’ll learn various techniques for automating test execution, scripting techniques, architecture, metrics, implementation of various tool. On the top of it, you’ll also get to learn various key points from the valuable case studies. This book is a pure gold for all the test automation engineers out there!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AjK60wQoPXUbxg8gC6yKymA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AjK60wQoPXUbxg8gC6yKymA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. The Agile Samurai by Jonathan Rasmusson
&lt;/h3&gt;

&lt;p&gt;If you’re working as an automation test engineer or planning to be one, then there is no need to introduce agile as &lt;a href="https://www.lambdatest.com/blog/automation-testing-important-agile-development/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr11_sd&amp;amp;utm_term=sd&amp;amp;utm_content=" rel="noopener noreferrer"&gt;automation testing is the first love of agile developers&lt;/a&gt;. This book will help you to understand agile in detail. It will make you familiar with continuous integration, test-driven development, unit testing, agile manifesto, agile planning and a lot more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AZ9stDwUPxM0Ao3cDReq5CQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AZ9stDwUPxM0Ao3cDReq5CQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="http://lambdatest.com/web-technologies/svg?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr11_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;SVG (basic support)&lt;/a&gt; - This animated graphical element is a method of displaying basic Vector Graphics features using the embed or object elements. Basically it’s just an image that contains all the SVG content that you have in an SVG file.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Experiences of Test Automation: Case Studies of Software Test Automation by Dorothy Graham and Mark Fewster
&lt;/h3&gt;

&lt;p&gt;In this book you’ll learn from others’ experiences. It is a collection of various automation implementation stories. Different people have solved different automation problems in different manners- learn from this book how they implemented it, challenges faced, solutions and much more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AcIaRSZc81EHLq2pgyrex6A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AcIaRSZc81EHLq2pgyrex6A.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory
&lt;/h3&gt;

&lt;p&gt;You’ll learn about various organizational challenges, agile testing quadrants, why we need to automate our tests, what holds us back from automating tests, an agile approach to test automation, what can we automate, what shouldn’t be automated, all in all it’s a full pack you need to learn.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AOxvX2MSTc_AXem6u1IiuyA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AOxvX2MSTc_AXem6u1IiuyA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Refactoring: Improving the Design of Existing Code by Martin Fowler and Kent Beck
&lt;/h3&gt;

&lt;p&gt;Get to learn about refactoring, figure out bad smells in code, build tests, learn about JUnit framework, making methods call simpler, simplifying conditional expressions, etc. You’ll get to learn about all the ways by which you can improve your existing code to make it more readable and avoid bugs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AIfwMB7jdme1B8nD21nUZbw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AIfwMB7jdme1B8nD21nUZbw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/web-technologies/svg-css?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr11_sd&amp;amp;utm_term=sd&amp;amp;utm_content=web_technologies" rel="noopener noreferrer"&gt;SVG in CSS&lt;/a&gt; - With this you can easily turn SVG images into CSS backgrounds, and link them to the HTML you want. This can be useful for adding logos to websites or just making something a little more personal in general.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. The Selenium Guidebook by Dave Haeffner
&lt;/h3&gt;

&lt;p&gt;No one can deny the fact that selenium is the true love for automation testers. But nothing comes without a cost, selenium also poses a lot of challenges for automation testers. In this selenium guidebook, you’ll learn how to use selenium step by step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AAXA7yvSof6By-6FieBuitw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AAXA7yvSof6By-6FieBuitw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Beautiful Testing: Leading Professionals Reveal How They Improve Software
&lt;/h3&gt;

&lt;p&gt;The three parts of the book beautiful testers, beautiful process, and beautiful tools sum up what this book is all about. Learn all about testing and quality assurance in a beautiful yet detailed manner with this amazing book.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Av7C_L4OrBZs-4wAk1jxkyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Av7C_L4OrBZs-4wAk1jxkyg.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you haven’t read some of these or all of these books, it’s time to read them. If you’re looking for more books to read on software testing, find out &lt;a href="https://www.lambdatest.com/blog/top-10-books-every-tester-read/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr11_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;top 10 books for software testers in our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let us know what you are reading.&lt;/p&gt;

&lt;p&gt;Happy Reading!&lt;/p&gt;

&lt;p&gt;And yes,&lt;/p&gt;

&lt;p&gt;Happy Testing! 😉&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Building a Regression Testing Strategy for Agile Teams</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Fri, 08 Apr 2022 10:21:03 +0000</pubDate>
      <link>https://dev.to/testmuai/building-a-regression-testing-strategy-for-agile-teams-1mja</link>
      <guid>https://dev.to/testmuai/building-a-regression-testing-strategy-for-agile-teams-1mja</guid>
      <description>&lt;p&gt;If Agile development had a relationship status, it would have been &lt;em&gt;it’s complicated&lt;/em&gt;. Where agile offers a numerous advantages like faster go to market, faster ROI, faster customer support, reduced risks, constant improvement etc, some very difficult challenges also follow. Out of those one of the major one is the headache of maintaining a proper balance between sprint development and iterative testing. To be precise agile development and &lt;a href="https://www.lambdatest.com/blog/regression-testing-what-is-and-how-to-do-it/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr08_sd&amp;amp;utm_term=sd&amp;amp;utm_content=" rel="noopener noreferrer"&gt;regression testing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Agile development is a very fast and dynamic development process. Sprint cycles are short and developers churn out features in record times. Similarly testing cycles are also expected to be short to keep up with development times. But in reality most of the times it is not the case. Development is done on one feature, however testing had to be performed on all new and old features. With every new build there is a need for making sure that the new addition or improvement in the code hasn’t compromised the functionality of existing features. You would have to make sure that your users’ experience is only enhanced by new features, not increase his efforts. This is what regression testing is all about. Making sure that the old code conforms with the new code and unmodified code remains unaffected with every build.&lt;/p&gt;

&lt;p&gt;But these builds and repeated tests become boring and time consuming after a few cycles and you might miss out on some features assuming that they must be working fine. This may cause you to fall flat on your face!&lt;/p&gt;

&lt;p&gt;To avoid that, you’ll need an escape plan by creating a proper regression testing strategy right from the beginning of the development cycle and this strategy needs to be modifies with every sprint coming up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before You Build a Regression Testing Strategy
&lt;/h2&gt;

&lt;p&gt;Before building that regression testing strategy, you need to gather some information beforehand.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Gather all the test cases that should be executed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improvements should never halt. Figure out all the improvements that can be implemented in the test cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Estimate the time for execution of test cases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Outline what all can be automated and how?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/convert-rgb-color-to-hex?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr08_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;RGB to Hex Converter&lt;/a&gt; Online - Free online tool to convert your RGB color values to HEX color values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a Regression Testing Strategy
&lt;/h2&gt;

&lt;p&gt;The most significant challenge in performing regression testing in agile development sprints is maintaining the balance between sprint development and regression testing. So, we need to follow some of the fast and effective methods in order to perform regression testing without compromising the quality.&lt;/p&gt;

&lt;h3&gt;
  
  
  Automating Regression Testing
&lt;/h3&gt;

&lt;p&gt;The one of the best ways to fasttrack the regression testing is to automate some of the parts of regression testing. We can create a regression testing script and with every new update the script should be modified and reviewed for its proper working. Your automation test script should cover all the possible test cases and verify your automation script results before moving it to the action item.&lt;/p&gt;

&lt;h3&gt;
  
  
  Find the Most Prone Areas Due to a New Build
&lt;/h3&gt;

&lt;p&gt;What about using some of the common test cases and utilizing their intelligence to lower our efforts? Well, as a tester we are aware of what development can cause what changes in the build. In other words, we can get a hold of all the possibilities of introduction of bugs due to the new build in already existing code. However, this doesn’t imply that you rely totally upon the guess game.&lt;/p&gt;

&lt;p&gt;Use that automation script created above along with some special test cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; You are testing an ecommerce website and a modification is made in the payment gateway. Now you have two ways, one is to test the entire product every time the payment gateways’ builds are commiting, for every half an hour and the other way around is to figure out the prone areas. In this case, the most prone areas will be checkout process and payment along with email confirmation, text confirmation, OTP or password validation, etc. Once you’re set with this payment fix you can then perform a round of end to end regression testing.&lt;/p&gt;

&lt;p&gt;What should save you time, money, and resources? The latter one and that too diligently and without compromising on quality.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Make sure you figure out the difference between smart work and hard work. Though hard work always yields better results but in places where you can solve the purpose though smart work, you should not miss the chance.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Prioritize Your Test Cases
&lt;/h3&gt;

&lt;p&gt;Prioritization helps you manage the test cases based on the severity of issue and the recent changes in the code. Highly severe bugs should be tested at the highest priority and then the lower severe ones follow. This way you’ll able to test all the bugs without missing out on high priority bugs.&lt;/p&gt;

&lt;p&gt;There is a 10% possibility of getting highest priority bugs, followed by 30% possibility of getting medium priority bugs, and 60% priority of getting low priority bugs. We need to take care of all the bugs ranging from highest to lowest priority but in an order.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/free-online-tools/convert-hex-color-to-rgb?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr08_sd&amp;amp;utm_term=sd&amp;amp;utm_content=free_tools" rel="noopener noreferrer"&gt;Hex to RGB Converter&lt;/a&gt; Online - Free online tool to convert your HEX color values to RGB color values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Go Ahead and Perform Regression Testing in an Agile Environment
&lt;/h2&gt;

&lt;p&gt;When you implement the following in your regression testing strategy, you will be able to perform regression testing and maintain the pace with the agile development. A perfect regression testing results will help your users to keep trust in your product and you’ll keep delivering the best to them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://accounts.lambdatest.com/register?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr08_sd&amp;amp;utm_term=sd&amp;amp;utm_content=register" rel="noopener noreferrer"&gt;LambdaTest&lt;/a&gt;, a cross &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr08_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;browser testing tool&lt;/a&gt;, provides a special feature to minimize your visual UI regression testing efforts. You can perform regression testing for visual UI bugs with just the upload of screenshots after every build(comparison images) and compare them with the ideal image (baseline) and you’ll get the testing results within seconds.&lt;/p&gt;

&lt;p&gt;So, go ahead, plan your strategy and perform regression testing with ease.&lt;/p&gt;

&lt;p&gt;Happy Testing!&lt;/p&gt;

</description>
      <category>agile</category>
      <category>testing</category>
      <category>productivity</category>
    </item>
    <item>
      <title>(Unknown): Script Error in JavaScript</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Thu, 07 Apr 2022 13:33:58 +0000</pubDate>
      <link>https://dev.to/testmuai/unknown-script-error-in-javascript-4iok</link>
      <guid>https://dev.to/testmuai/unknown-script-error-in-javascript-4iok</guid>
      <description>&lt;p&gt;If someone tries to violate the rule that you have set, what you’ll do in return? Send him Script error.&lt;/p&gt;

&lt;p&gt;Not in real life, though. 😉&lt;/p&gt;

&lt;p&gt;But in JavaScript, if you try to violate the same origin policy, the browser will send you ‘’Script error’ in return.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AVWtBvU3gxypT4X-H.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AVWtBvU3gxypT4X-H.png" width="800" height="118"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When Script Error Occurs In A JavaScript Code?
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;When an exception violates the same origin policy of a browser in response to onerror callback, the browser responds with a ‘script error’.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Same Origin policy: According to same origin policy, the browser accepts only the scripts hosted on the same server on two different web pages.&lt;/p&gt;

&lt;p&gt;Every browser has a set of acceptable or say, required ‘Request Headers’. When you hit any request on the server, it should contain those essentials for request header. Else you are going to face an script error.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AVfjlPDJPnenFS62w5Duhiw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AVfjlPDJPnenFS62w5Duhiw.png" width="526" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, this is an intentional behaviour by the browsers in order to prevent scripts from leaking to external domains. As no one wants to entertain the unwanted requests 😉 Do you?&lt;/p&gt;

&lt;h2&gt;
  
  
  I am facing an Script Error In JavaScript, What Should I Do?
&lt;/h2&gt;

&lt;p&gt;If you also face the same issue, then go ahead with these possible solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Set up Cross-Origin HTTP header
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Access-Control-Allow-Origin: *
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;By setting Access-Control-Allow-Origin: to ‘ * ’, you make sure that you can access the resource from any domain. If necessary, you can also replace the ‘ * ‘ by the specific domain name, which you want that should access your domain’s script.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/automation-testing-advisor/selenium/classes/org.junit.runners.model.MultipleFailureException?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr07_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;MultipleFailureException&lt;/a&gt; happens when Junit runner recognize many failures and collect them into one.&lt;/p&gt;

&lt;h2&gt;
  
  
  There is different method to set his to * in different environments.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Apache: Create an .htaccess file in the folder where your JS file is served with:&lt;/p&gt;

&lt;p&gt;Header add Access-Control-Allow-Origin "*"&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ngnix: Add add_header directive as:&lt;/p&gt;

&lt;p&gt;location ~ ^/assets/ {&lt;br&gt;
    add_header Access-Control-Allow-Origin *;&lt;br&gt;
}&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;HA Proxy: Add this asset:&lt;/p&gt;

&lt;p&gt;rspadd Access-Control-Allow-Origin:\ *&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/automation-testing-advisor/selenium/classes/org.junit.runner.manipulation.InvalidOrderingException?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr07_sd&amp;amp;utm_term=sd&amp;amp;utm_content=" rel="noopener noreferrer"&gt;InvalidOrderingException&lt;/a&gt;  happens when test execution ordering is wrong and junit runner is not able to invoke them.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Set crossorigin=”anonymous”
&lt;/h2&gt;

&lt;p&gt;For every script in your HTML script, that you’ve set Access-Control-Allow-Origin, set crossorigin="anonymous"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script src="[http://another-domain.com/app.js](http://another-domain.com/app.js)" crossorigin="anonymous"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This code tells that your browser to fetch the target file anonymously avoiding transmission of any user identifying information like HTTP credentials or cookies while requesting by the browser.&lt;/p&gt;

&lt;p&gt;If you face any script error in your JavaScript code, hope this article may prove to be of help.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Complete Guide For Your First TestNG Automation Script</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Wed, 06 Apr 2022 15:24:32 +0000</pubDate>
      <link>https://dev.to/testmuai/a-complete-guide-for-your-first-testng-automation-script-5go4</link>
      <guid>https://dev.to/testmuai/a-complete-guide-for-your-first-testng-automation-script-5go4</guid>
      <description>&lt;p&gt;The love of Automation testers, TestNG, is a Java testing framework that can be used to drive Selenium Automation script.&lt;/p&gt;

&lt;p&gt;When it comes to automation, no one can compete with Selenium.&lt;/p&gt;

&lt;p&gt;If you are planning to dive into the field of automation testing, TestNG can be your topmost choice.&lt;/p&gt;

&lt;p&gt;For a beginner, it becomes hard to understand the point from where he needs to start.&lt;/p&gt;

&lt;p&gt;So, in this blog, we have come up with a step by step method to assist you in getting started with your first automation test script.&lt;/p&gt;

&lt;p&gt;For this, you need to set up an Test Automation environment for selenium with Eclipse first and then go ahead with the script. Let’s do it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Open your browser in the next tab and get started for your first automation test script in TestNG. All you need is just 20 minutes.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up The Environment
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Step 1: First of all, download java8 or jdk1.8 and install it in your system.
&lt;/h2&gt;

&lt;p&gt;You can use the link to download java8.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html" rel="noopener noreferrer"&gt;http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After installing java8, set up the path.&lt;/p&gt;

&lt;p&gt;To do so, Go to Start→ Computer→ Right click → properties→ Advanced system settings → Environment variable→ New→ After clicking on that you need to enter variable name and variable path.&lt;/p&gt;

&lt;p&gt;You’ll see the following screen in the ‘Environment variable’ window.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fom9mekogdv84pix9ghsh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fom9mekogdv84pix9ghsh.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you click on New, you’ll see the following window. Enter ‘Path’ as the variable name. And Enter the path where your jdk has been installed in the variable path&lt;/p&gt;

&lt;p&gt;Let’s validate if this is properly installed or not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2FNaN%2F1%2Ab31hiO4ynbDLRrXWEFF4aQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2FNaN%2F1%2Ab31hiO4ynbDLRrXWEFF4aQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To do so, open cmd window and type ‘javac’.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2FNaN%2F0%2Azq4hCPddhBQjQAxQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2FNaN%2F0%2Azq4hCPddhBQjQAxQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll see a window with all the details of jdk. If you get it, then it is properly installed, if not, then try again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2A5ocL-EKNmQz5RQ9TxmyN3Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2A5ocL-EKNmQz5RQ9TxmyN3Q.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Download Eclipse and Run
&lt;/h2&gt;

&lt;p&gt;You can use this link to download Eclipse.&lt;br&gt;
&lt;a href="https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1" rel="noopener noreferrer"&gt;https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select Eclipse IDE for Java EE Developers and install it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AcjWUhKVMxRdRgn0Z24XGVA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AcjWUhKVMxRdRgn0Z24XGVA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you install it, an eclipse IDE window will open for writing the script and it will look like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkd5kanoi2q6j1jagrv1k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkd5kanoi2q6j1jagrv1k.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 3: Download TestNG from Eclipse Marketplace
&lt;/h2&gt;

&lt;p&gt;For this, Go to Help→ Eclipse Marketplace&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2714%2F1%2AI7YcmmMirN-zM74tpJ7OKA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2714%2F1%2AI7YcmmMirN-zM74tpJ7OKA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click ‘install’ on TestNG for Eclipse.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmcw04t70kug5cd3xuuw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmcw04t70kug5cd3xuuw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And finish the process.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 4: Download Selenium 3.11.0
&lt;/h2&gt;

&lt;p&gt;You can use this link to download: &lt;a href="https://www.seleniumhq.org/download/" rel="noopener noreferrer"&gt;https://www.seleniumhq.org/download/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 5: Download Selenium dependency files
&lt;/h2&gt;

&lt;p&gt;Download selenium dependency files for jdk 3.11.0.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 6: Create the project
&lt;/h2&gt;

&lt;p&gt;Create a Java project&lt;br&gt;
To create it, go to file→ New→ Other&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furt3ngkkpouzktyctmm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furt3ngkkpouzktyctmm3.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select create a Java Project&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqil8xkskglz0xycxoc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqil8xkskglz0xycxoc4.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter your project name, I am entering ‘FirstAutomationProject’.&lt;br&gt;
Note: Do not enter spaces in the name of the project&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AN_6hyRXHNgk2xHar3vkhxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AN_6hyRXHNgk2xHar3vkhxw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Open Perspective&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A64x_TWlXOcn9ae6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A64x_TWlXOcn9ae6f.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll see that a new Java Project is created at the left side. Now, Click on ‘FirstAutomationProject’. You’ll see src file. Right click on it. Select new→ Other→ Create a new Java Package.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2730%2F1%2ARdzwGDZg9o4A2Hf-AA1y0w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2730%2F1%2ARdzwGDZg9o4A2Hf-AA1y0w.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Finish.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Ah_STC6rpMMnYq_NUPK3sLQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Ah_STC6rpMMnYq_NUPK3sLQ.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 7: Create a new TestNG class.
&lt;/h2&gt;

&lt;p&gt;Create a new TestNG class under the package newpack. Right click newpack–&amp;gt; New –&amp;gt; Other&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2A-_PbecuGBHSoFDMZmRDj2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2A-_PbecuGBHSoFDMZmRDj2w.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check @BeforeTest and @AfterTest. Once you click on Finish, you’re all set to write your automation script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2A1nqLGfgW66xz2hq7ps5Y5A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2A1nqLGfgW66xz2hq7ps5Y5A.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A template TestNG code will open up like this.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 8: Import Selenium Jar Files in dependency files
&lt;/h2&gt;

&lt;p&gt;Right click on FirstAutomationTest→ Import. Click on’ Add external Jar’ and add the Jar dependency files that you’ve downloaded above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AgusBH2weGJDSmX08o_Ts_A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AgusBH2weGJDSmX08o_Ts_A.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A template TestNG code will open up like this.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step 8: Import Selenium Jar Files in dependency files
&lt;/h2&gt;

&lt;p&gt;Right click on FirstAutomationTest→ Import. Click on’ Add external Jar’ and add the Jar dependency files that you’ve downloaded above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2ALblU8u1-9NXJHMdrTG6jdA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2ALblU8u1-9NXJHMdrTG6jdA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similarly, import the dependency files that you’ve downloaded from the link provided above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AtU_R2TGYjn0bCmZZLUCIEA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AtU_R2TGYjn0bCmZZLUCIEA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Import lib files from the zip extracted dependency files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AaQHHe7k5iu_Gh5pJ4zk-EQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2AaQHHe7k5iu_Gh5pJ4zk-EQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select all the files in the lib folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Ax1Z-dSa2JvxyiU1r0zm_dg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Ax1Z-dSa2JvxyiU1r0zm_dg.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you import all the files, you’re all set to write the code.&lt;/p&gt;
&lt;h2&gt;
  
  
  Writing The Code
&lt;/h2&gt;

&lt;p&gt;On the eclipse window that you’re seeing now, write the following code.&lt;br&gt;
We are writing a code in order to verify the title of webpage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;CODE(self explanatory):&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

//comment the above line and uncomment below line to use Chrome
//import org.openqa.selenium.chrome.ChromeDriver;
public class NewTest {
 WebDriver driver;
    [@Test](http://twitter.com/Test)
    public void FirstTest() {
        // declaration and instantiation of objects/variables
     System.setProperty("webdriver.chrome.driver","C:\\Users\\Admin\\Downloads\\chromedriver_win32\\chromedriver.exe");
  driver = new ChromeDriver();
  //comment the above 2 lines and uncomment below 2 lines to use Chrome
  //System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
  //WebDriver driver = new ChromeDriver();

        String baseUrl = "[https://www.lambdatest.com](https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=)/";
        String expectedTitle = "LambdaTest - Perform all your tests on cloud";
        String actualTitle = "";

// launch Chrome and direct it to the Base URL
        driver.get(baseUrl);

// get the actual value of the title
        actualTitle = driver.getTitle();

/*
         * compare the actual title of the page with the expected one and print
         * the result as "Passed" or "Failed"
         */
        if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");
        }

        //close Fire fox
        driver.close();

    }

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;After writing the code, save it and right click on ‘New Test.java’ → Run as→ TestNG Test.&lt;/p&gt;

&lt;p&gt;Once you click on it, you’ll see a chrome browser window opening the website that you’ve entered in your code to test. And it will automatically close as soon as the test is completed and in the output section below, you’ll see ‘Test Passed’ as the status of your test on the console below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2730%2F1%2AJDn6hZ-J8bEyaW8LSIb24w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2730%2F1%2AJDn6hZ-J8bEyaW8LSIb24w.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this, you have run your first automation test in TestNG using a local webdriver.&lt;/p&gt;

&lt;p&gt;To verify the title of a given webpage matches the one already specified.&lt;/p&gt;

&lt;p&gt;With TestNG certification, you can challenge your skills in performing automated testing with TestNG and take your career to the next level.&lt;/p&gt;

&lt;p&gt;Here’s a short glimpse of the TestNG certification from LambdaTest:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/dzXX2hJhuCY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Executing Cross Browser Automation Testing With TestNG &amp;amp; Selenium Using Remote WebDriver At LambdaTest
&lt;/h2&gt;

&lt;p&gt;So far, you have noticed how to run a TestNG script using a local webdriver. That is all easy and quick, however, using a local webdriver for performing automation testing with selenium will not provide you with a variety of browsers to test your website or web app on! You can only perform your testing on the browsers that are installed in your local machine. Considering the abundance of browsers on the internet, it could be nearly impossible to have your website test over every web browser through your local machine. This is where cloud testing plays a crucial part. LambdaTest is a cloud-based cross browser testing tool which offers you to run your Selenium scripts using a remote webdriver. This remote webdriver would allow you to perform your test on over 2000+ browsers and browser versions supported by LambdaTest Selenium grid. LambdaTest also allows you to perform a test on your locally hosted web apps or web pages through an SSH tunnel. This way you don’t need to install an excessive number of browsers on your OS for higher coverage of test results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Executing A Single Instance In LambdaTest Using TestNG
&lt;/h2&gt;

&lt;p&gt;A couple changes in your code is all that you would need for running your Selenium test script on LambdaTest Selenium grid. Here we will take a look at a different example to help you demonstrate the LambdaTest Selenium grid.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/automation-testing-advisor/selenium/classes/org.testng.SkipException?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=automation-testing-advisor" rel="noopener noreferrer"&gt;SkipException&lt;/a&gt; happens when user defined to skip a test then it throws SkipException. Test status will be considerd by the result of isSkip() Method.&lt;/p&gt;

&lt;p&gt;We will be running a script of a simple To Do list app. In this list, our code will be marking 2 items as done, add a list item and will display the total count of pending items.&lt;br&gt;
You can find the below code on our &lt;a href="https://github.com/LambdaTest-sample-test-frameworks/Java-TestNG-Selenium" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; as well.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;

public class TestNGTodo{
     public String username = "YOUR_USERNAME";
    public String authkey = "YOUR_ACCESS_KEY";
    public static RemoteWebDriver driver = null;
    public String gridURL = "[@hub](http://twitter.com/hub).lambdatest.com/wd/hub";
    boolean status = false;

    [@BeforeClass](http://twitter.com/BeforeClass)
    public void setUp() throws Exception {
       DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "chrome");
        capabilities.setCapability("version", "70.0");
        capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get the any available one
        capabilities.setCapability("build", "LambdaTestSampleApp");
        capabilities.setCapability("name", "LambdaTestJavaSample");
        capabilities.setCapability("network", true); // To enable network logs
        capabilities.setCapability("visual", true); // To enable step by step screenshot
        capabilities.setCapability("video", true); // To enable video recording
        capabilities.setCapability("console", true); // To capture console logs
        try {
            driver = new RemoteWebDriver(new URL("https://" + username + ":" + authkey + gridURL), capabilities);
        } catch (MalformedURLException e) {
            System.out.println("Invalid grid URL");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@Test](http://twitter.com/Test)
    public void testSimple() throws Exception {
       try {
              //Change it to production page
            driver.get("https://4dvanceboy.github.io/lambdatest/lambdasampleapp.html");

              //Let's mark done first two items in the list.
              driver.findElement(By.name("li1")).click();
            driver.findElement(By.name("li2")).click();

             // Let's add an item in the list.
              driver.findElement(By.id("sampletodotext")).sendKeys("Yey, Let's add it to list");
            driver.findElement(By.id("addbutton")).click();

              // Let's check that the item we added is added in the list.
            String enteredText = driver.findElementByXPath("/html/body/div/div/div/ul/li[6]/span").getText();
            if (enteredText.equals("Yey, Let's add it to list")) {
                status = true;
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@AfterClass](http://twitter.com/AfterClass)
    public void tearDown() throws Exception {
       if (driver != null) {
            ((JavascriptExecutor) driver).executeScript("lambda-status=" + status);
            driver.quit();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If you look at the configurations selected for running the test. They are our desired capabilities and the code provided for those capabilities is fetched from &lt;a href="https://www.lambdatest.com/capabilities-generator/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=capabilities-generator/" rel="noopener noreferrer"&gt;LambdaTest Capabilities Generator&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2686%2F1%2Ac6SzikWcQVMQjGS1r70WiA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2686%2F1%2Ac6SzikWcQVMQjGS1r70WiA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The button which says Copy to clipboard will help you to copy all the code based on your selections in just a single click.&lt;/p&gt;

&lt;p&gt;That’s all you need for running your first automation test script using Selenium with TestNG at LambdaTest.&lt;/p&gt;

&lt;p&gt;Note: &lt;a href="https://www.lambdatest.com/automation-testing-advisor/selenium/classes/org.testng.DataProviderInvocationException?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=automation-testing-advisor" rel="noopener noreferrer"&gt;DataProviderInvocationException&lt;/a&gt; happens when any issues with the invocation of dataprovider method in testng.&lt;/p&gt;

&lt;h2&gt;
  
  
  Executing Cross Browser Parallel Testing With TestNG Using LambdaTest
&lt;/h2&gt;

&lt;p&gt;Now let us execute a single test on multiple configurations. Yes, we are talking about parallel test execution.&lt;/p&gt;

&lt;p&gt;In order to execute parallel testing, you must generate a testng.xml file along with a test case which would make use of the below parameters:&lt;/p&gt;

&lt;p&gt;org.testng.annotations.Parameters&lt;/p&gt;

&lt;p&gt;Here is an example of parallel testing.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;


public class TestNGTodo {
     public String username = "YOUR_USERNAME";
    public String authkey = "YOUR_ACCESS_KEY";
    public static RemoteWebDriver driver = null;
    public String gridURL = "[@hub](http://twitter.com/hub).lambdatest.com/wd/hub";
    boolean status = false;

    [@BeforeClass](http://twitter.com/BeforeClass)
    [@org](http://twitter.com/org).testng.annotations.Parameters(value={"browser","version","platform"})
    public void setUp() throws Exception {
       DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "chrome");
        capabilities.setCapability("version", "70.0");
        capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get the any available one
        capabilities.setCapability("build", "LambdaTestSampleApp");
        capabilities.setCapability("name", "LambdaTestJavaSample");
        capabilities.setCapability("network", true); // To enable network logs
        capabilities.setCapability("visual", true); // To enable step by step screenshot
        capabilities.setCapability("video", true); // To enable video recording
        capabilities.setCapability("console", true); // To capture console logs
        try {
            driver = new RemoteWebDriver(new URL("https://" + username + ":" + authkey + gridURL), capabilities);
        } catch (MalformedURLException e) {
            System.out.println("Invalid grid URL");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@Test](http://twitter.com/Test)
    public void testSimple() throws Exception {
       try {
              //Change it to production page
            driver.get("[https://4dvanceboy.github.io/lambdatest/lambdasampleapp.html](https://4dvanceboy.github.io/lambdatest/lambdasampleapp.html)");

              //Let's mark done first two items in the list.
              driver.findElement(By.name("li1")).click();
            driver.findElement(By.name("li2")).click();

             // Let's add an item in the list.
              driver.findElement(By.id("sampletodotext")).sendKeys("Yey, Let's add it to list");
            driver.findElement(By.id("addbutton")).click();

              // Let's check that the item we added is added in the list.
            String enteredText = driver.findElementByXPath("/html/body/div/div/div/ul/li[6]/span").getText();
            if (enteredText.equals("Yey, Let's add it to list")) {
                status = true;
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@AfterClass](http://twitter.com/AfterClass)
    public void tearDown() throws Exception {
       if (driver != null) {
            ((JavascriptExecutor) driver).executeScript("lambda-status=" + status);
            driver.quit();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now let us generate a tesng.xml file where we will be declaring basic test configurations such as browser, browser version, OS etc.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;!DOCTYPE suite SYSTEM "[http://testng.org/testng-1.0.dtd](http://testng.org/testng-1.0.dtd)"&amp;gt;
&amp;lt;suite thread-count="3" name="LambaTestSuite" parallel="tests"&amp;gt;

  &amp;lt;test name="WIN8TEST"&amp;gt;
  &amp;lt;parameter name="browser" value="firefox"/&amp;gt;
  &amp;lt;parameter name="version" value="62.0"/&amp;gt;
  &amp;lt;parameter name="platform" value="WIN8"/&amp;gt;
    &amp;lt;classes&amp;gt;
      &amp;lt;class name="lambdatest.TestNGTodo "/&amp;gt;
    &amp;lt;/classes&amp;gt;
  &amp;lt;/test&amp;gt; &amp;lt;!-- Test --&amp;gt;

  &amp;lt;test name="WIN10TEST"&amp;gt;
  &amp;lt;parameter name="browser" value="chrome"/&amp;gt;
  &amp;lt;parameter name="version" value="70.0"/&amp;gt;
  &amp;lt;parameter name="platform" value="WIN10"/&amp;gt;
    &amp;lt;classes&amp;gt;
      &amp;lt;class name="lambdatest.TestNGTodo "/&amp;gt;
    &amp;lt;/classes&amp;gt;
  &amp;lt;/test&amp;gt; &amp;lt;!-- Test --&amp;gt;
  &amp;lt;test name="MACTEST"&amp;gt;
  &amp;lt;parameter name="browser" value="safari"/&amp;gt;
  &amp;lt;parameter name="version" value="11.0"/&amp;gt;
  &amp;lt;parameter name="platform" value="macos 10.13"/&amp;gt;
    &amp;lt;classes&amp;gt;
      &amp;lt;class name="lambdatest.TestNGTodo"/&amp;gt;
    &amp;lt;/classes&amp;gt;
  &amp;lt;/test&amp;gt; &amp;lt;!-- Test --&amp;gt;

&amp;lt;/suite&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Kudos! That is all you need for successfully executing parallel automated tests using &lt;a href="https://www.lambdatest.com/selenium-automation-testing-with-testng?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=selenium-automation-testing-with-testng" rel="noopener noreferrer"&gt;Selenium with TestNG&lt;/a&gt; on LambdaTest.&lt;/p&gt;

&lt;p&gt;Nothing matches the feel you get after doing something new. So, feeling good after executing your first automation script? Let us know your experience in the comment section below.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>testng</category>
      <category>automation</category>
      <category>testing</category>
    </item>
    <item>
      <title>Test a SignUp Page: Problems, Test Cases, and Template</title>
      <dc:creator>Deeksha Agarwal</dc:creator>
      <pubDate>Tue, 05 Apr 2022 10:20:31 +0000</pubDate>
      <link>https://dev.to/testmuai/test-a-signup-page-problems-test-cases-and-template-5cm1</link>
      <guid>https://dev.to/testmuai/test-a-signup-page-problems-test-cases-and-template-5cm1</guid>
      <description>&lt;p&gt;Every user journey on a website starts from a signup page. Signup page is one of the simplest yet one of the most important page of the website. People do everything in their control to increase the conversions on their website by changing signup pages, modifying them, performing A/B testing to find out the best pages and what not. But the major problem that went unnoticed or is usually underrated is testing the signup page. If you try all the possible hacks but fail to test it properly you’re missing on a big thing. Because if users are facing problem while signing up they leave your website and will never come back.&lt;/p&gt;

&lt;p&gt;Testers and QA have a huge challenge while testing a signup page because of the varied possibilities around testing it. Many times, the process works fine on one browser but fails on the other. Cross browser compatibility plays a major role here. So, there needs to be followed a &lt;a href="https://docs.google.com/spreadsheets/d/1DlVA8DWneeU9bgwHU1kbfzdMU0kNqBU6m4EnkI7YR-0/edit#gid=0" rel="noopener noreferrer"&gt;proper testing template&lt;/a&gt; to make sure you cover all the aspects of testing a signup page.&lt;/p&gt;

&lt;p&gt;We have decided to make the task easier for everyone out there. If you follow all the testing instructions, you can be sure that your signup page is working fine across all browser, operating systems, and devices. We have also added a template at the bottom of the blog page. You can download that free and use it for testing your signup page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before We Start Testing The Signup Pages
&lt;/h2&gt;

&lt;p&gt;So before moving with the test cases, we need to gather some requirements like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;First Name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Last Name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User Name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Email ID&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Phone Number&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Password&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Confirm Password&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Address&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gender&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fields may also vary according to your registration process. I have tried to cover the maximum possibilities for a sign up page.&lt;/p&gt;

&lt;h2&gt;
  
  
  WorkFlow of Testing a SignUp Page
&lt;/h2&gt;

&lt;p&gt;1- Enter the necessary fields: Name, Email ID, Password, Confirm Password&lt;/p&gt;

&lt;p&gt;2- Validate the fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Email&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Password: Should have 8 to 16 characters, must contain one special character, at least one uppercase character, and have a numerical.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Phone number: Country code is required, only numbers are allowed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3- Verify the email ID: Send a verification to the entered Email ID after a successful validation&lt;/p&gt;

&lt;p&gt;4- should be there on the mandatory fields.&lt;/p&gt;

&lt;h2&gt;
  
  
  APIs issues in a Signup Page
&lt;/h2&gt;

&lt;p&gt;The major challenge you’ll face here is to test all possible scenarios for all the possible combinations of browsers, devices, and OSes. Because as we know that the sign up process makes use of &lt;a href="https://www.lambdatest.com/blog/everything-you-need-to-know-about-api-testing/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr05_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;API&lt;/a&gt;sand &lt;a href="https://www.lambdatest.com/blog/api-and-browser-compatibility/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr05_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;API compatibility in browsers&lt;/a&gt; needs to be taken care of. So many times, you’ll find that your sign up is working on a browser but when a user tries to do the same from any other browser or device it will fail.&lt;/p&gt;

&lt;p&gt;Browser Incompatibility: Authentication Problems in a Signup Page&lt;/p&gt;

&lt;p&gt;If a signup page uses strong authentication techniques like second-factor authentication utilizing text SMS verification(or without that), password-less authentication, or encrypted public key then there might be a possibility of cross browser compatibility issues in authentication. Because these techniques make use APIs like web authentication API . The problem that occurs here is that these APIs are unsupported in various browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2454%2F0%2ABENud-pYXNaVxnQM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2454%2F0%2ABENud-pYXNaVxnQM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So authentication will fail on browsers like: IE, older edge versions, older chrome and firefox versions, Safari, iOS Safari, Opera Mini, UC Browser, and Samsung internet. So, if a user tries to signup using these browser, he’ll not be able to finish it off. So, you need to test for these browsers and make sure that the authentication works on all browsers.&lt;/p&gt;

&lt;p&gt;Payment APIs in A SignUp Page&lt;/p&gt;

&lt;p&gt;There are many websites that ask for payment details or card validation details on signup. So, the registration or sign up may fail if the payment is not processed successfully or the card is not validated.&lt;/p&gt;

&lt;p&gt;Developers make use of APIs like Payment Request API for allowing web pages to switch information from the user agent. This is basically done when the user agent provides input before it approves or denies a payment request. This API again comes with some incompatibility issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2436%2F1%2Aqb8bvgdhnsD8lkuuRusz1A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2436%2F1%2Aqb8bvgdhnsD8lkuuRusz1A.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, you need to test the payment process for all browsers.&lt;/p&gt;

&lt;p&gt;Animations API for a Signup Page&lt;/p&gt;

&lt;p&gt;While designing a signup page, we make sure of creating a beautiful design by adding some beautiful animations on the buttons for signup. However sometimes this might cause a huge problem.&lt;/p&gt;

&lt;p&gt;APIs like Web Animations API that allow you to synchronize and change timings of a web page (animations of DOM elements), sometimes cause compatibility issues in browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2458%2F1%2AnXkMNgUzafPaoMBbLdf-cg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2458%2F1%2AnXkMNgUzafPaoMBbLdf-cg.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, APIs holds a major portion of compatibility issues in a signup process. So it’s important to test APIs and overall page functionalities as well for a signup page along with the mentioned test cases for a signup process on all browsers and browser versions. LambdaTest platform can help you in making sure that your page is compatible across all browsers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test Cases For a Signup Page
&lt;/h2&gt;

&lt;p&gt;Buttons&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check all buttons, radio buttons, checkboxes by clicking on all buttons and see if they are working or not.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Required Fields&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Check all required fields by not entering the data and (*) should be shown asking for mandatory field.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check all required fields by entering the data and validating. Upon entering the all required fields User should be signed up, A successful registration message should be sent along with a mail.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Optional Fields&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Check all optional fields by entering the data and a successful registration should happen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check all optional fields by not entering the data and again the user should be successfully register without asking for the optional fields.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check by filling some optional fields and leaving some and the user should be successfully register without asking for the optional fields.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Email Validation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Test for some invalid emails with cases like: without @, without(.), without domain, without alphabets before @. In such cases the user should be prompted to enter a valid email address and the user shouldn’t be signed up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test for valid email addresses by entering valid email addresses and then click on signup. User should be registered successfully.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test for valid but already existing email address. User should not be signed up and prompted to login instead.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Phone number Validation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Test for non-numeric inputs by entering some alphabets or special characters. Since, it’s a number field so it should show an error and ask user again to enter the correct phone number.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test for numeric inputs by entering a valid number and clicking on signup. The user should be registered successfully.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test for input with country code applied by entering a number starting from + followed by dial code. User must not get any error message on that.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Password Validation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Check the password for less value than the minimum characters specified. Enter a password of less than 8 characters and then click on signup. The user should see a message to enter a value between 8 to 16 characters and shouldn’t be signed up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check the password for more value than the maximum characters specified. Enter a password of more than 16 characters and then click on signup. The user should see a message to enter a value between 8 to 16 characters and shouldn’t be signed up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter a password without alphanumeric characters and click on signup. It should prompt the user to enter a password having alphanumeric characters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check by entering an alphanumeric password between 8–16 characters and a special character. It should not give any error and signup should be successful.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;User Interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tab functionality should work fine. Check by pressing tab button. It should navigate between the fields.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter button should act as a substitute for click on signup button and the user should be successfully signed up on pressing enter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify that the cursor should change according to the fields. On text fields, it should be a ⌶, on buttons it should be a hand pointer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Template of Test Cases for a Sign Up Page
&lt;/h2&gt;

&lt;p&gt;You can also use this &lt;a href="https://docs.google.com/spreadsheets/d/1DlVA8DWneeU9bgwHU1kbfzdMU0kNqBU6m4EnkI7YR-0/edit#gid=0" rel="noopener noreferrer"&gt;test case template for maintaining your test results for a signup page&lt;/a&gt;. Download it free and use this as a standard template.&lt;/p&gt;

&lt;p&gt;When it comes to &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr05_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;performing cross browser testing of a signup page&lt;/a&gt;, you can verify all the above test results across all browsers one by one.&lt;/p&gt;

&lt;p&gt;For more information on &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr05_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;how to perform cross browser testing using LambdaTest read our blog&lt;/a&gt; by &lt;a href="https://www.lambdatest.com/blog/cross-browser-testing-strategy-explained-in-three-easy-steps/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=apr05_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;formulating a perfect cross browser testing strategy&lt;/a&gt; and make sure your users don’t bounce back because of some silly bugs.&lt;/p&gt;

&lt;p&gt;Happy testing and happy conversions!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>test</category>
    </item>
  </channel>
</rss>
