<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Browshot blog</title>
    <description>Take screenshots of any page on different devices in many resolutions. Get updates on the features offered by Browshot.
</description>
    <link>https://browshot.com/blog/</link>
    <atom:link href="https://browshot.com/blog/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 05 Mar 2026 18:03:35 -0800</pubDate>
    <lastBuildDate>Thu, 05 Mar 2026 18:03:35 -0800</lastBuildDate>
    <generator>Jekyll v3.1.6</generator>
    
      <item>
        <title>The future of Browshot is coming soon</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://screenshotcenter.com/assets/logos/screenshotcenter-square.svg&quot; alt=&quot;ScreenshotCenter&quot; /&gt;&lt;/span&gt;
Since its creation, Browshot has focused on providing high-quality screenshots through a powerful API. Over the years, we have added many features such as automation steps, ad and pop-up blocking, dark mode support, and more. Browshot has acquired other screenshot services: &lt;a href=&quot;https://thumbalizr.com&quot;&gt;Thumbalizr&lt;/a&gt; in 2017 and &lt;a href=&quot;https://blitapp.com&quot;&gt;Blitapp&lt;/a&gt; in 2023, both using Browshot as their API. Thumbalizr offers an easy way to integrate screenshots into your website, while Blitapp provides a user-friendly interface for scheduling screenshots and storing them in your cloud.&lt;/p&gt;

&lt;p&gt;It is time to bring all these features together into a single, more powerful version of Browshot:
&lt;ul&gt;
  &lt;li&gt;Faster screenshots&lt;/li&gt;
  &lt;li&gt;Over 80 countries available&lt;/li&gt;
  &lt;li&gt;Integration with cloud storage and workflow apps&lt;/li&gt;
  &lt;li&gt;Support for alternative outputs: PDF, video&lt;/li&gt;
  &lt;li&gt;User-friendly interface&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will keep and improve the features you already use and appreciate, including:
&lt;ul&gt;
  &lt;li&gt;Pay-as-you-go: pay only for what you use, no expiration date&lt;/li&gt;
  &lt;li&gt;A stable, backward-compatible, API we have maintained for 15 years and will keep maintaining&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/2020/04/automation-steps.html&quot;&gt;Automation steps&lt;/a&gt; to interact with pages before taking screenshots&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/2020/12/hide-popups-overlay-ads-automatically.html&quot;&gt;Ad and popup blocking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/2021/04/browser-dark-mode.html&quot;&gt;Dark mode&lt;/a&gt; support&lt;/li&gt;
  &lt;li&gt;Multiple browsers, including mobile devices&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/2023/01/track-information.html&quot;&gt;Trackers&lt;/a&gt; to extract data from web pages&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/2020/09/take-thousands-of-screenshots-easily.html&quot;&gt;Batches&lt;/a&gt; to process multiple screenshots at once&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;more&quot;&gt;
&lt;p&gt;To ensure a smooth transition, we are introducing &lt;strong&gt;&lt;a href=&quot;https://screenshotcenter.com&quot;&gt;ScreenshotCenter&lt;/a&gt;&lt;/strong&gt;, a preview of Browshot 2.0. The new platform showcases all the features of Browshot 2.0 and will require a paid subscription.&lt;/p&gt;

&lt;h2&gt;Introducing ScreenshotCenter&lt;/h2&gt;

&lt;p&gt;We invite all Browshot users to &lt;a href=&quot;https://app.screenshotcenter.com/app/signup&quot;&gt;try out ScreenshotCenter for free&lt;/a&gt;. We offer 500 screenshots per month during our launch period, with full access to all features. These features will make their way into the new Browshot in the coming months.&lt;/p&gt;

We will keep ScreenshotCenter as a service alongside Browshot 2.0. Users can choose between the subscription model at ScreenshotCenter or the pay-as-you-go model at Browshot.

&lt;div align=&quot;center&quot; style=&quot;margin-bottom: 40px;&quot;&gt;
  &lt;p&gt;The ScreenshotCenter dashboard&lt;/p&gt;
  &lt;img src=&quot;https://cdn.browshot.com/blog/images/screenshotcenter-dashboard.png&quot; alt=&quot;The ScreenshotCenter dashboard&quot;&gt;
&lt;/div&gt;

&lt;h2&gt;Looking Forward&lt;/h2&gt;

&lt;p&gt;We are excited about the future and committed to delivering the best screenshot service possible. We are committed to keeping supporting the existing Browshot API (v1) for many more years, while adding more features and improvements in Browshot 2.0.&lt;/p&gt;


&lt;p&gt;Share your thoughts and suggestions—your feedback shapes Browshot’s direction. Join us in building the next generation of screenshot tools by reaching out and participating today!&lt;/p&gt;
&lt;/div&gt;</description>
        <pubDate>Wed, 04 Mar 2026 11:39:00 -0800</pubDate>
        <link>https://browshot.com/blog/2026/03/future-browshot-coming-sson.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2026/03/future-browshot-coming-sson.html</guid>
        
        
      </item>
    
      <item>
        <title>Track your Amazon product rank, Google search rank, YouTube views, Retweets, and more</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blitapp.com/blog/articles/track-amazon-rank-google-search-youtube/amazon-rank-blitapp.png&quot; alt=&quot;Trackers used by Blitapp&quot; /&gt;&lt;/span&gt;
Browshot can report information from a website through trackers. Trackers are Javascript snippet that runs on the page to get information such as:
&lt;ul&gt;
  &lt;li&gt;Page title&lt;/li&gt;
  &lt;li&gt;Google search rank for a website&lt;/li&gt;
  &lt;li&gt;Amazon search rank&lt;/li&gt;
  &lt;li&gt;Number of views, likes, tweets, retweets&lt;/li&gt;
  &lt;li&gt;Price, delivery dates&lt;/li&gt;
  &lt;li&gt;Anything available on the page!&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This blog post shows a couple of examples of trackers. You can define your own as well&lt;/p&gt;

&lt;div class=&quot;more&quot;&gt;

&lt;h2&gt;Tracker definition&lt;/h2&gt;

&lt;p&gt;A tracker returns a name and a value. For example, if you want to track the number of views of a YouTube video, you can extract the name of the video for the name and the number of views for the value.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://browshot.com/api/documentation#screenshot_create&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;Browshot API&lt;/a&gt; takes a trackers argument as a JSON array that includes one or multiple tracker definitions. The tracker is a JSON object with these keys:
  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;name&lt;/strong&gt;: a fixed name or a javascript snippet to extract a name from the page&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;name_type&lt;/strong&gt; (optional, default: string): &lt;em&gt;javascript&lt;/em&gt; if &lt;strong&gt;name&lt;/strong&gt; contains javascript code to run, or &lt;em&gt;string&lt;/em&gt; for a fixed name&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;value&lt;/strong&gt;: javascript code to retrieved information from the page&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;value_type&lt;/strong&gt; (optional, default: string): &lt;em&gt;string&lt;/em&gt; to return the value as found, or &lt;em&gt;number&lt;/em&gt; to return the value as a number&lt;/li&gt;
    
    &lt;li&gt;&lt;strong&gt;selector&lt;/strong&gt; (optional): a CSS selector that must be present on the page to run the tracker &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;input&lt;/strong&gt; (optional): a value for the &amp;lt;input&amp;gt; variable to make it easier to reuse trackers. The &amp;lt;input&amp;gt; variable can be used inside the name, selector, and value parameters.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;You can add arbitrary keys to a tracker definition, such as &lt;em&gt;id&lt;/em&gt;, to help you identify the return value. These extra keys and values will be returned by the Browshot API.&lt;/p&gt;

&lt;p&gt;Here is an example that tracks the number of views for a YouTube video using the name of the video:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{
    id: &#39;youtube_view&#39;,
    name: &quot;document.querySelectorAll(&#39;#title &gt; h1 &gt; yt-formatted-string, h1.title &gt; yt-formatted-string&#39;)[0].textContent + &#39; (Views)&#39;&quot;,
    name_type: &quot;javascript&quot;,
    value: &quot;document.querySelectorAll(&#39;#formatted-snippet-text &gt; span:nth-child(1), span.view-count&#39;)[0].textContent&quot;,
    value_type: &quot;number&quot;
}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;


&lt;p&gt;Trackers run with every screenshot taken. The Browshot API &lt;a href=&quot;https://browshot.com/api/documentation#screenshot_info&quot; target=&quot;_blank&quot;&gt;screenshot/info&lt;/a&gt; returns the list of trackers defined with the screenshot request alongside the return values:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;[{
  &quot;name&quot;:&quot;page title&quot;, &quot;value&quot;:&quot;document.title&quot;,
  &quot;id&quot;: &quot;test&quot;, &quot;name_type&quot;: &quot;string&quot;, &quot;input&quot;: &quot;&quot;, &quot;value_type&quot;:&quot;string&quot;, &quot;selector&quot;: &quot;&quot;,
  &quot;return&quot;: [{
    &quot;found&quot;: 1, &quot;shot&quot;: 1, &quot;value&quot;: &quot;My Page Title&quot;, &quot;name&quot;: &quot;page title&quot;
    }]
}]&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;return&lt;/strong&gt; contains all the names and values found by the tracker:
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;found&lt;/strong&gt;: 1 if the tracker was found, 0 if not found&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;shot&lt;/strong&gt;: the shot number if which the tracker was found, starting with 1&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;name&lt;/strong&gt;: tracker name&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;value&lt;/strong&gt;: value retrieved&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;


&lt;h2&gt;Examples&lt;/h2&gt;


&lt;p&gt;

  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;[
{
  &quot;id&quot;: &quot;amazon_category_rank&quot;,
  &quot;comment&quot;: &quot;Amazon Category Rank&quot;,
  &quot;input_comment&quot;: &quot;Amazon Product ID&quot;,
  &quot;input&quot;: &quot;ABBCCCC12345&quot;,
  &quot;name&quot;: &quot;document.querySelectorAll(&#39;h1&#39;)[0].textContent&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;name_comment&quot;: &quot;Product name&quot;,
  &quot;selector&quot;: &quot;//*[@id=&#39;&amp;lt;input&amp;gt;&#39;]&quot;,
  &quot;value&quot;: &quot;document.evaluate(&#39;//*[@id=\&quot;&amp;lt;input&amp;gt;\&quot;]&#39;,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue.parentNode.parentNode.querySelectorAll(&#39;span&#39;)[0].textContent&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;amazon_search_rank&quot;,
  &quot;comment&quot;: &quot;Amazon Search Rank&quot;,
  &quot;input_comment&quot;: &quot;Amazon Product ID&quot;,
  &quot;input&quot;: &quot;ABBCCCC12345&quot;,
  &quot;name&quot;: &quot;document.querySelectorAll(&#39;#twotabsearchtextbox&#39;)[0].value || document.querySelectorAll(&#39;#searchDropdownBox&#39;)[0].querySelectorAll(&#39;option[selected]&#39;)[0].textContent&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;name_comment&quot;: &quot;Product name&quot;,
  &quot;selector&quot;: &quot;div[data-asin=&#39;&amp;lt;input&amp;gt;&#39;][data-cel-widget]&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(&#39;div[data-asin=\&quot;&amp;lt;input&amp;gt;\&quot;][data-cel-widget]&#39;)[0].getAttribute(&#39;data-cel-widget&#39;)&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;google_search_rank&quot;,
  &quot;comment&quot;: &quot;Google Search Rank&quot;,
  &quot;input_comment&quot;: &quot;URL or part of URL&quot;,
  &quot;name&quot;: &quot;document.querySelectorAll(&#39;input[aria-label]&#39;)[0].value&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  selector: &quot;a[href*=&#39;&amp;lt;input&amp;gt;&#39;]&quot;,
  value: &quot;(function(){\
    var className = document.querySelectorAll(\&quot;a[href*=&#39;&amp;lt;input&amp;gt;&#39;] &gt; h3\&quot;)[0].getAttribute(&#39;class&#39;).split(&#39; &#39;).join(&#39;.&#39;);\
    var page = Array.from(document.querySelectorAll(&#39;td &gt; span&#39;)).filter(x =&gt; x.parentNode.textContent != &#39;&#39;).map(x =&gt; x.parentNode.textContent)[0] || 1;\
    return Array.from(document.querySelectorAll(`a &gt; h3.${className}`)).filter(function(x){return x.offsetParent != null}).findIndex(function(x){ return x.parentNode.href.includes(&#39;&amp;lt;input&amp;gt;&#39;)}) + 1 + (page -1) * 10;\
    })()&quot;,
  value_type: &quot;number&quot;
},{
  &quot;id&quot;: &quot;youtube_view&quot;,
  &quot;comment&quot;: &quot;YouTube Views&quot;,
  &quot;name&quot;: &quot;document.querySelectorAll(&#39;#title &gt; h1 &gt; yt-formatted-string, h1.title &gt; yt-formatted-string&#39;)[0].textContent + &#39; (Views)&#39;&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(&#39;#formatted-snippet-text &gt; span:nth-child(1), span.view-count&#39;)[0].textContent&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;youtube_likes&quot;,
  &quot;comment&quot;: &quot;Youtube Likes&quot;,
  &quot;name&quot;: &quot;document.querySelectorAll(&#39;#title &gt; h1 &gt; yt-formatted-string, h1.title &gt; yt-formatted-string&#39;)[0].textContent + &#39; (Likes)&#39;&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(&#39;#top-level-buttons-computed &gt; ytd-toggle-button-renderer:nth-child(1) &gt; a &gt; yt-formatted-string&#39;)[0].getAttribute(&#39;aria-label&#39;)&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;youtube_comments&quot;,
  &quot;comment&quot;: &quot;Youtube Comments&quot;,
  &quot;name&quot;: &quot;document.querySelectorAll(&#39;#title &gt; h1 &gt; yt-formatted-string, h1.title &gt; yt-formatted-string&#39;)[0].textContent + &#39; (Comments)&#39;&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(&#39;#count &gt; yt-formatted-string &gt; span:nth-child(1)&#39;)[0].textContent&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;twitter_retweets&quot;,
  &quot;comment&quot;: &quot;Twitter Retweets&quot;,
  &quot;name&quot;: &quot;`${window.location.href} (Retweets)`&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(\&quot;a[href$=&#39;/retweets&#39;]\&quot;)[0].textContent&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;twitter_likes&quot;,
  &quot;comment&quot;: &quot;Twitter Likes&quot;,
  &quot;name&quot;: &quot;`${window.location.href} (Likes)`&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(\&quot;a[href$=&#39;/likes&#39;]\&quot;)[0].textContent&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;twitter_quotetweets&quot;,
  &quot;comment&quot;: &quot;Twitter Quote Tweets&quot;,
  &quot;name&quot;: &quot;`${window.location.href} (Quote Tweets)`&quot;,
  &quot;name_type&quot;: &quot;javascript&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(\&quot;a[href$=&#39;/retweets/with_comments&#39;]\&quot;)[0].textContent&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;browshot&quot;,
  &quot;comment&quot;: &quot;Browshot Screenshots Count&quot;,
  &quot;name&quot;: &quot;Browshot Screenshots Count&quot;,
  &quot;name_type&quot;: &quot;string&quot;,
  &quot;value&quot;: &quot;document.querySelectorAll(&#39;body &gt; section.bg1.hero.center &gt; div &gt; div &gt; i:nth-child(9)&#39;)[0].textContent&quot;,
  &quot;value_type&quot;: &quot;number&quot;
},
{
  &quot;id&quot;: &quot;title&quot;,
  &quot;comment&quot;: &quot;Page Title&quot;,
  &quot;name&quot;: &quot;Page Title&quot;,
  &quot;name_type&quot;: &quot;string&quot;,
  &quot;value&quot;: &quot;document.title&quot;,
}]&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;h2&gt;Cost&lt;/h2&gt;
&lt;p&gt;Browshot charges 1 credit for each tracker successfully retrieved.&lt;/p&gt;

&lt;h2&gt;Make it your own&lt;/h2&gt;
&lt;p&gt;We&#39;d love to hear what our users want to track on web pages. &lt;a href=&quot;https://blitapp.com/&quot; target=&quot;
  _blank&quot;&gt;Blitapp&lt;/a&gt; is using the Browshot trackers to  &lt;a href=&quot;https://blitapp.com/blog/track-your-amazon-product-rank-google-search-rank-youtube-views-retweets-and-more/&quot; target=&quot;
  _blank&quot;&gt;show trends of Amazon product ranking or Google SEO ranks&lt;/a&gt; in their application.&lt;/p&gt;
&lt;/div&gt;

  &lt;script&gt;hljs.initHighlightingOnLoad();&lt;/script&gt;</description>
        <pubDate>Sun, 29 Jan 2023 11:39:00 -0800</pubDate>
        <link>https://browshot.com/blog/2023/01/track-information.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2023/01/track-information.html</guid>
        
        <category>api</category>
        
        
      </item>
    
      <item>
        <title>Brave Browser available - Ad and tracker blocker</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/brave-browser.png?1&quot; alt=&quot;Brave browser is available&quot; /&gt;&lt;/span&gt;
Brave Browser is a modified version of Chromium, the open-source version of Chrome, with privacy protection such as ad blocker, tracking blocker and anti-fingerprint solution. We have added the Brave browser to Browshot to make it easy to test sites with an ad blocker enabled.&lt;/p&gt;

&lt;p&gt;We have done a screenshot of &lt;a href=&quot;https://d3ward.github.io/toolz/adblock.html&quot; target=&quot;_blank&quot;&gt;https://d3ward.github.io/toolz/adblock.html&lt;/a&gt;, a page that tests your browser&#39;s ability to block various ads, analytics and other tracking tools. You can see that Brave blocks most of these sites (around 90%) whereas Chrome blocks none of them.&lt;/p&gt;

&lt;p&gt;Like other Chrome-based desktop and mobile browsers, Brave supports the &lt;a href=&quot;/blog/2021/04/browser-dark-mode.html&quot;&gt;dark mode&lt;/a&gt; we introduced last year.&lt;/p&gt;

&lt;div align=&quot;center&quot; style=&quot;margin-bottom: 40px;&quot;&gt;
  &lt;p&gt;Brave browser in action&lt;/p&gt;
  &lt;img src=&quot;https://cdn.browshot.com/blog/images/brave-ad-tracker-block-test.png&quot; alt=&quot;Test of the Brave browser through Browshot&quot;&gt;
&lt;/div&gt;

&lt;p&gt;The Brave browser is available in the USA, Germany, UK and as a private instance for other countries.&lt;/p&gt;</description>
        <pubDate>Sun, 02 Jan 2022 15:39:00 -0800</pubDate>
        <link>https://browshot.com/blog/2022/01/brave-browser-ad-blocker.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2022/01/brave-browser-ad-blocker.html</guid>
        
        <category>api</category>
        
        
      </item>
    
      <item>
        <title>New iPhone 12 instances</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/iphone.png&quot; alt=&quot;iPhone 12 available as a mobile device&quot; /&gt;&lt;/span&gt;
We have added the iPhone 12 as mobile device. It comes with many improvement for all mobile devices, such as improved support for mobile-only API. These new instances support the &lt;a href=&quot;/blog/2021/04/browser-dark-mode.html&quot;&gt;dark mode&lt;/a&gt; we introduced recently.&lt;/p&gt;

&lt;div align=&quot;center&quot; style=&quot;margin-bottom: 40px;&quot;&gt;
  &lt;p&gt;Wikipedia on iPhone 12 in dark mode&lt;/p&gt;
  &lt;img src=&quot;https://cdn.browshot.com/blog/images/wikipedia-dark-mode.png&quot; alt=&quot;Wikipedia rendered in dark mode on iPhone 12&quot;&gt;
&lt;/div&gt;

&lt;p&gt;The iPhone 12 is available in the USA, Germany, UK and as a private instance for other countries.&lt;/p&gt;</description>
        <pubDate>Sun, 25 Apr 2021 16:39:00 -0700</pubDate>
        <link>https://browshot.com/blog/2021/04/iphone-12.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2021/04/iphone-12.html</guid>
        
        <category>api</category>
        
        
      </item>
    
      <item>
        <title>Support for dark mode</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/dark-mode.png&quot; alt=&quot;Dark mode support for Chrome and Mobile&quot; /&gt;&lt;/span&gt;
We have added support for dark mode in Chrome, for both desktop browsers and mobile devices. Dark mode changes the way web page look, for example by switching a white background to a black color.&lt;/p&gt;

&lt;div align=&quot;center&quot; style=&quot;margin-bottom: 40px;&quot;&gt;
  &lt;p&gt;Wikipedia on iPhone 12 in dark mode&lt;/p&gt;
  &lt;img src=&quot;https://cdn.browshot.com/blog/images/wikipedia-dark-mode.png&quot; alt=&quot;Wikipedia rendered in dark mode on iPhone 12&quot;&gt;
&lt;/div&gt;



&lt;h2&gt;dark=1 API parameter&lt;/h2&gt;

&lt;p&gt;Add &lt;em&gt;dark=1&lt;/em&gt; to your API calls to enable the dark mode native to Chrome. This option is available with all API calls that generate screenshots:
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/api/documentation#screenshot_create&quot; target=&quot;_blank&quot;&gt;screenshot/create&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/api/documentation#screenshot_multiple&quot; target=&quot;_blank&quot;&gt;screenshot/multiple&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/api/documentation#batch_create&quot; target=&quot;_blank&quot;&gt;batch/create&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;more&quot;&gt;

&lt;p&gt;You will find the new option in the dashboard under &lt;em&gt;Advanced options&lt;/em&gt;:&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/dashboard-dark-mode.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Dark mode&quot;&gt;


&lt;p&gt;And on the Batch page under &lt;em&gt;Advanced options&lt;/em&gt;:&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/batch-dark-mode.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Dark mode&quot;&gt;

&lt;/div&gt;</description>
        <pubDate>Sun, 18 Apr 2021 14:39:00 -0700</pubDate>
        <link>https://browshot.com/blog/2021/04/browser-dark-mode.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2021/04/browser-dark-mode.html</guid>
        
        <category>api</category>
        
        
      </item>
    
      <item>
        <title>Hide popups, ads, overlays automatically</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/block-ads.png&quot; alt=&quot;Hide ads and other popups easily&quot; /&gt;&lt;/span&gt;
We&#39;ve added an option to automatically hide most ads and popups. This option can hide ads, subscriptions, and most popups on many websites. You may find websites on which this option does not hide an ad or messes up the layout of the site. Please report these issues to help us improve our ad blocker.&lt;/p&gt;

&lt;h2&gt;hide_popups=1 API parameter&lt;/h2&gt;

&lt;p&gt;Add &lt;em&gt;hidepopups=1&lt;/em&gt; to your API calls. This option is available with all API calls that generate screenshots:
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/api/documentation#screenshot_create&quot; target=&quot;_blank&quot;&gt;screenshot/create&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/api/documentation#screenshot_multiple&quot; target=&quot;_blank&quot;&gt;screenshot/multiple&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/api/documentation#batch_create&quot; target=&quot;_blank&quot;&gt;batch/create&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;more&quot;&gt;

&lt;p&gt;You will find the new option in the dashboard under &lt;em&gt;Advanced options&lt;/em&gt;:&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/dashboard-hide-popup.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Hide popups&quot;&gt;


&lt;p&gt;And on the Batch page under &lt;em&gt;Advanced options&lt;/em&gt;:&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/batch-hide-popup.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Hide popups&quot;&gt;





&lt;h2&gt;A couple of examples&lt;/h2&gt;

&lt;p&gt;Here are a few sites with the feature turned off (hide_popups=0) and enabled (hide_popups=1).&lt;/p&gt;

&lt;p&gt;Le Monde, cookie popup (&lt;em&gt;hide_popups=0&lt;/em&gt;)&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/lemonde-before.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Le Monde cookie popup&quot;&gt;

&lt;p&gt;Le Monde, &lt;em&gt;hide_popups=&lt;b&gt;1&lt;/b&gt;&lt;/em&gt;&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/lemonde-after.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 40px;&quot; alt=&quot;Hide Le Monde cookie popup&quot;&gt;


&lt;p&gt;Common advertising over the main content (hide_popups=0)&lt;/p&gt;
  &lt;img src=&quot;https://cdn.browshot.com/blog/images/ad-before.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Le Monde cookie popup&quot;&gt;
  
&lt;p&gt;hide_popups=&lt;b&gt;1&lt;/b&gt;&lt;/p&gt;
  &lt;img src=&quot;https://cdn.browshot.com/blog/images/ad-after.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Hide Le Monde cookie popup&quot;&gt;


&lt;h2&gt;If this does not work&lt;/h2&gt;

&lt;p&gt;This new feature works on most websites. If it does not work on a page, you can use the automation steps to handle more complex cases. You can find &lt;a href=&quot;/blog/2020/08/screenshot-hide-cookie-banner.html&quot;&gt;examples on our blog&lt;/a&gt;.&lt;/p&gt;


&lt;/div&gt;</description>
        <pubDate>Thu, 17 Dec 2020 20:39:00 -0800</pubDate>
        <link>https://browshot.com/blog/2020/12/hide-popups-overlay-ads-automatically.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2020/12/hide-popups-overlay-ads-automatically.html</guid>
        
        <category>api</category>
        
        
      </item>
    
      <item>
        <title>Take thousands of screenshots in a couple of clicks</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/thousands-of-screenshots.png&quot; alt=&quot;Take thousands of screenshots&quot; /&gt;&lt;/span&gt;
With Browshot, you can take thousands of screenshots at once without writing a line of code. Using the &lt;strong&gt;batch&lt;/strong&gt; feature, you can upload a list of URLs (from a text file, an Excel spreadsheet, etc.) and downloads all the screenshots in a ZIP archive. In this post, we&#39;ll explain:

&lt;ul&gt;
  &lt;li&gt;How to prepare the batch&lt;/li&gt;
  &lt;li&gt;How to follow the progress&lt;/li&gt;
  &lt;li&gt;How to specify the image file you want&lt;/li&gt;
  &lt;li&gt;How to download all screenshots at once&lt;/li&gt;
  &lt;li&gt;Examples of batch to download&lt;/li&gt;
  &lt;li&gt;The Batch API for advanced users&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;There is no limit to the number of screenshots you can request. One of our users took nearly a million screenshots in a single batch. The batch takes care of trying screenshots multiple times if the requested URL is temporarily unavailable.&lt;/p&gt;

&lt;div class=&quot;more&quot;&gt;


&lt;h2&gt;Prepare the batch: screenshot name, S3 upload, etc.&lt;/h2&gt;

&lt;p&gt;All you need is the list of URLs for which you want screenshots. You can start with a text file, with open URL per line. In this case, Browshot will generate &quot;random&quot; names for each screenshot.&lt;/p&gt;

&lt;p&gt;You can also specify the file names for each screenshot in your text file. Add the image file separated by a comma:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;https://browshot.com/,site/browshot.com.png
https://thumbalizr.com/,site/thumbalizr.com.png
https://blitapp.com/,site/blitapp.com.png
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you use spreadsheet software like Excel, with the first column for the URL and the second column for the file name, you can export the spreadsheet as a &lt;strong&gt;CSV&lt;/strong&gt; file and use it for your batch.&lt;/p&gt;

&lt;p&gt;You can use folders in the file name. If you choose the S3 upload when you create your batch, these file names will be used in your S3 bucket.&lt;/p&gt;


&lt;p&gt;Now that you have your text file (or CSV file) with the list of URLs, and maybe file names as well, you are ready to create a batch. In the Browshot dashboard, go to &lt;a href=&quot;https://browshot.com/dashboard/batch&quot;&gt;Batch&lt;/a&gt; from the left menu. At the top of the page, you&#39;ll find your previous batches and a link to download the results:&lt;/p&gt;


&lt;img src=&quot;https://cdn.browshot.com/blog/images/batch-requests.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Download your screenshots&quot;&gt;

&lt;p&gt;Then, you&#39;ll find the form to create a new batch. You can set a name for your batch to make it easier to find later. Just like for regular screenshots, you can change many parameters, such as what browser to use, the country of origin, the size of the browser, etc. Click on &lt;em&gt;Advanced options&lt;/em&gt; to customize the HTTP request (cookie, referrer, etc.) or inject a script. Finally, choose the image format (PNG or JPEG) and the size of the screenshot or thumbnail. If you want your screenshots to be uploaded to AWS S3 as they are done, add your S3 bucket name. Upload your text or CSV file and hit &lt;em&gt;Request&lt;/em&gt;.&lt;/p&gt;

&lt;img src=&quot;https://cdn.browshot.com/blog/images/batch-create.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Create a new batch&quot;&gt;

&lt;p&gt;I want to highlight the choice of image format (PNG or JPEG). PNG offers the best image quality, while JPEG has a much smaller file size. A JPEG file can be 10x smaller than the same PNG with just slightly lower quality. Having smaller files might be important if you&#39;re taking many screenshots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: We recommend creating a test batch with just one or two URLs to verify all your settings.&lt;/p&gt;


&lt;h2&gt;Follow the progress&lt;/h2&gt;

&lt;p&gt;Once you hit &lt;em&gt;Request&lt;/em&gt;, Browshot will process the batch-create. Your batch will be added to the list of batch requests at the top of the page. The table will show how many unique URLs have been found in your file (&lt;em&gt;Finished/Total&lt;/em&gt;), how many screenshots have been completed (&lt;em&gt;	Processed&lt;/em&gt;), how many have failed (&lt;em&gt;Failed&lt;/em&gt;), and a rough estimate of how long it should take (&lt;em&gt;Status&lt;/em&gt;). Press the refresh button at the bottom right of the table to get updated information.&lt;/p&gt;

&lt;p&gt;Note that the batch will take longer if some URLs are not reachable or take a long time to load. Each failed screenshot will be retried up to three times. &lt;/p&gt;

&lt;p&gt;When the batch is done, the last row will show a link to one or more files to download.&lt;/p&gt;


&lt;h2&gt;Download the screenshots&lt;/h2&gt;

&lt;p&gt;If you take a lot of full-page screenshots, the resulting ZIP file might be very big, several GB. To make it easier to download and unzip on your computer, we split large files into smaller files of 100MB. You must download all the files on your computer before you can decompress them. Then, follow the instruction on the &lt;em&gt;Batch&lt;/em&gt; screen: Open the first file with 7-Zip (Windows) or Keka (Mac OS X).&lt;/p&gt;

&lt;p&gt;When you decompress the files, you&#39;ll find a CSV file, along with all the image files, that contains all the details of your screenshots:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;URL&lt;/li&gt;
  &lt;li&gt;Status: finished or error&lt;/li&gt;
  &lt;li&gt;ID: the screenshot ID&lt;/li&gt;
  &lt;li&gt;filename: the local file name for the screenshot&lt;/li&gt;
  &lt;li&gt;status code: the HTTP status code of the URL (200, 404, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CSV file can be opened with any spreadsheet software like Excel, Google Sheet, etc.&lt;/p&gt;


&lt;h2&gt;Examples of batches&lt;/h2&gt;

&lt;p&gt;Here are a couple of batches you can download to better understand what to expect:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Batch with no image files: &lt;a href=&quot;/blog/images/browshot.txt&quot; target=&quot;_blank&quot;&gt;text file&lt;/a&gt; - &lt;a href=&quot;/blog/images/browshot-5462-DUCdMMlyjwdjC4xs3C.zip&quot; target=&quot;_blank&quot;&gt;ZIP archive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Batch with an image file requested: &lt;a href=&quot;/blog/images/browshot.csv&quot; target=&quot;_blank&quot;&gt;text file&lt;/a&gt; - &lt;a href=&quot;/blog/images/browshot-5464-APngAdiEika4acTruyyvdA.zip&quot; target=&quot;_blank&quot;&gt;ZIP archive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Batch from a text file with more than two columns: &lt;a href=&quot;/blog/images/browshot-2.csv&quot; target=&quot;_blank&quot;&gt;text file&lt;/a&gt; - &lt;a href=&quot;/blog/images/browshot-5465-hA0ru4IjJ3P2HpYdYbyBnYAz.zip&quot; target=&quot;_blank&quot;&gt;ZIP archive&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;The Batch API&lt;/h2&gt;

&lt;p&gt;Batches can also be created, checked and downloaded using the &lt;a href=&quot;https://browshot.com/api/documentation#batch_create&quot; target=&quot;_blank&quot;&gt;API&lt;/a&gt;. If you want to take 10 or fewer screenshots at once through the API, consider using &lt;a href=&quot;https://browshot.com/api/documentation#screenshot_multiple&quot; target=&quot;_blank&quot;&gt;screenshot/multiple&lt;/a&gt; instead of a batch.&lt;/p&gt;

&lt;p&gt;Don&#39;t hesitate to &lt;a href=&quot;https://browshot.com/contact&quot;&gt;contact us&lt;/a&gt; if you need help creating batches.&lt;/p&gt;

&lt;/div&gt;</description>
        <pubDate>Sun, 06 Sep 2020 11:39:00 -0700</pubDate>
        <link>https://browshot.com/blog/2020/09/take-thousands-of-screenshots-easily.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2020/09/take-thousands-of-screenshots-easily.html</guid>
        
        
      </item>
    
      <item>
        <title>Hide a cookie notice or other banners</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/cookie-notice.png&quot; alt=&quot;Hide a cookie notice or any banner from your screenshots&quot; /&gt;&lt;/span&gt;
  &lt;b&gt;Update&lt;/b&gt;: we have added an API parameter to hide most ads and popups automatically. See this &lt;a href=&quot;/blog/2020/12/hide-popups-overlay-ads-automatically.html&quot;&gt;blog post&lt;/a&gt; for more information.
&lt;br /&gt;
&lt;br /&gt;
Many websites prompt the user to accept a cookie or some other terms of service, or show an ad that covers most of the page. You can easily remove these banners and popups from your screenshot by leveraging the &lt;a href=&quot;/blog/2020/04/automation-steps.html&quot;&gt;automation steps&lt;/a&gt;. We&#39;ll review a couple of examples in this blog post.&lt;/p&gt;

&lt;div class=&quot;more&quot;&gt;

&lt;h2&gt;Yahoo UK privacy banner&lt;/h2&gt;

&lt;p&gt;If you visit https://www.yahoo.co.uk/, you&#39;ll be presented with this banner about their new privacy policy:&lt;/p&gt;


&lt;img src=&quot;https://cdn.browshot.com/blog/images/yahoo-banner.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Hide the Yahoo privacy popup&quot;&gt;

&lt;p&gt;If you want to take a screenshot of the home page, you must to click on &quot;&lt;em&gt;I agree&lt;/em&gt;&quot;. You can add an automation step to click the button. All you need is the CSS selector that corresponds to this button. Follow these steps to get it:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;In Chrome, right click on the &quot;&lt;em&gt;I agree&lt;/em&gt;&quot; button and choose &lt;em&gt;Inspect&lt;/em&gt;. Other browsers, such as Firefox, have a similar option.&lt;br /&gt;
    &lt;img src=&quot;https://cdn.browshot.com/blog/images/cookie-banner-inspect.png&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Inspect the blue button&quot;&gt;
  &lt;/li&gt;
  &lt;li&gt;This opens the Chrome Developer Tools. The corresponding HTML code is highlighted in light gray. Right-click on it. Choose &lt;em&gt;Copy&lt;/em&gt;, and then &lt;em&gt;Copy selector&lt;/em&gt;&lt;br /&gt;
    &lt;img src=&quot;https://cdn.browshot.com/blog/images/inspect-element-selector.png&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Get the CSS selector&quot;&gt;
  &lt;/li&gt;
  &lt;li&gt;The CSS selector has been copied to your clipboard. Paste it anywhere to find out what it is:&lt;br /&gt;
  &lt;pre&gt;&lt;code&gt;#consent-page &gt; div &gt; div &gt; div &gt; div.wizard-body &gt; div.actions.couple &gt; form &gt; button&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;img src=&quot;https://browshot.com/blog/images/yahoo-selector.gif&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;CSS selector&quot;&gt;

&lt;p&gt;You can now use the CSS selector with the automation step, either through the API or through the &lt;a href=&quot;https://browshot.com/dashboard&quot; target=&quot;_blank&quot;&gt;dashboard&lt;/a&gt;. To test it through the dashboard, click on &lt;em&gt;Advanced Web Options&lt;/em&gt;. Add this step:&lt;br /&gt;
  &lt;pre&gt;&lt;code&gt;Action: click
Element: #consent-page &gt; div &gt; div &gt; div &gt; div.wizard-body &gt; div.actions.couple &gt; form &gt; button&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;img src=&quot;https://cdn.browshot.com/blog/images/screenshot-step-cookie.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Hide the Yahoo privacy popup&quot;&gt;



&lt;h2&gt;USA Today cookie banner&lt;/h2&gt;

&lt;p&gt;USA Today (https://www.usatoday.com/) displays a banner to accept cookies at the bottom of the page. Like in the previous example, you can click on &quot;&lt;em&gt;Accept Cookies&lt;/em&gt;&quot; to hide it. &lt;/p&gt;

&lt;img src=&quot;https://cdn.browshot.com/blog/images/usa-today-cookie.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Hide the USA Today cookie notification&quot;&gt;

&lt;p&gt;To get the CSS selector of the &quot;&lt;em&gt;Accept Cookies&lt;/em&gt;&quot; button, do this:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Right click on the &quot;&lt;em&gt;Accept Cookies&lt;/em&gt;&quot; button and choose &lt;em&gt;Inspect&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;This opens the Chrome Developer Tools. The corresponding HTML code is highlighted in light gray. Right-click on it. Choose &lt;em&gt;Copy&lt;/em&gt;, and then &lt;em&gt;Copy selector&lt;/em&gt;
  &lt;/li&gt;
  &lt;li&gt;The CSS selector has been copied to your clipboard. Paste it anywhere to find out what it is:&lt;br /&gt;
  &lt;pre&gt;&lt;code&gt;#onetrust-accept-btn-handler&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;img src=&quot;https://browshot.com/blog/images/usa-today-selector.gif&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;CSS selector&quot;&gt;

&lt;p&gt;You can now use the CSS selector with the automation step, either through the API or through the &lt;a href=&quot;https://browshot.com/dashboard&quot; target=&quot;_blank&quot;&gt;dashboard&lt;/a&gt;. To test it through the dashboard, click on &lt;em&gt;Advanced Web Options&lt;/em&gt;. Add this step:&lt;br /&gt;
  &lt;pre&gt;&lt;code&gt;Action: click
Element: #onetrust-accept-btn-handler&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;You can test the automation steps with your &lt;a href=&quot;https://browshot.com/dashboard&quot;&gt;free account&lt;/a&gt;. &lt;a href=&quot;https://browshot.com/contact&quot;&gt;Contact us&lt;/a&gt; if you need help getting the CSS selector for any website.&lt;/p&gt;

&lt;/div&gt;</description>
        <pubDate>Mon, 17 Aug 2020 11:39:00 -0700</pubDate>
        <link>https://browshot.com/blog/2020/08/screenshot-hide-cookie-banner.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2020/08/screenshot-hide-cookie-banner.html</guid>
        
        <category>api</category>
        
        <category>automation</category>
        
        
      </item>
    
      <item>
        <title>Take screenshots of a carousel</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/carousel.png&quot; alt=&quot;Take screenshots of all the positions of a carousel&quot; /&gt;&lt;/span&gt;
The new &lt;a href=&quot;/blog/2020/04/automation-steps.html&quot;&gt;automation steps&lt;/a&gt; make it easy to take several screenshots of the same page in different states. This is particularly useful if you want to capture all the positions of a carousel or slider. In this post, we will show you how to take screenshots of all carousel elements shown at https://walmart.com/. At the top of the page, the carousel rotates five different products:&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/walmart-carousel.png?1&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Carousel at Walmart.com&quot;&gt;


&lt;p&gt;The carousel has five dots that allow the user to manually display an element. With the automation steps, we can click on each dot to move the carousel, and then take a screenshot of the new position. We must get the CSS selector that corresponds to each dot. To do this, press F12 in your browser to open the Developer Tools. In the top left corner of the Developer Tools, click on the mouse cursor highlighted in red below.&lt;/p&gt;
&lt;div class=&quot;more&quot;&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/developer-tools.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Developer Tools&quot;&gt;


&lt;p&gt;Then, click on the first dot in the carousel to select it. This highlights the corresponding HTML code in the Developer Tools. Right-click on the highlighted code and choose &lt;em&gt;Copy &gt; Copy selector&lt;/em&gt;:&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/developer-tools-walmart.png?1&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Developer Tools&quot;&gt;

&lt;img src=&quot;https://browshot.com/blog/images/selector-walmart.gif&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;CSS selector&quot;&gt;

&lt;p&gt;This copied the CSS selector of the first dot. If you paste it in a test editor, you get this value:
  &lt;pre&gt;&lt;code&gt;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1) &gt; div &gt; div:nth-child(1) &gt; div &gt; div.slider-decorator-0 &gt; div &gt; div &gt; ul &gt; li:nth-child(2) &gt; div&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;With the CSS selector, we can create the steps to take a screenshot of the first carousel element. We click on the first dot, then take a screenshot:
&lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1) &gt; div &gt; div:nth-child(1) &gt; div &gt; div.slider-decorator-0 &gt; div &gt; div &gt; ul &gt; li:nth-child(2) &gt; div&quot;},
{&quot;command&quot;:&quot;screenshot&quot;}&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;We repeat the same process for the next four dots to get the full list:
&lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1) &gt; div &gt; div:nth-child(1) &gt; div &gt; div.slider-decorator-0 &gt; div &gt; div &gt; ul &gt; li:nth-child(2) &gt; div&quot;},
{&quot;command&quot;:&quot;screenshot&quot;},
{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1) &gt; div &gt; div:nth-child(1) &gt; div &gt; div.slider-decorator-0 &gt; div &gt; div &gt; ul &gt; li:nth-child(3) &gt; div&quot;},
{&quot;command&quot;:&quot;screenshot&quot;},
{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1) &gt; div &gt; div:nth-child(1) &gt; div &gt; div.slider-decorator-0 &gt; div &gt; div &gt; ul &gt; li:nth-child(4) &gt; div&quot;},
{&quot;command&quot;:&quot;screenshot&quot;},
{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1) &gt; div &gt; div:nth-child(1) &gt; div &gt; div.slider-decorator-0 &gt; div &gt; div &gt; ul &gt; li:nth-child(5) &gt; div&quot;},
{&quot;command&quot;:&quot;screenshot&quot;},
{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1) &gt; div &gt; div:nth-child(1) &gt; div &gt; div.slider-decorator-0 &gt; div &gt; div &gt; ul &gt; li:nth-child(6)&quot;},
{&quot;command&quot;:&quot;screenshot&quot;}&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;With one call to Browshot, and these 10 steps, you will get five screenshots showing the 5 positions of the carousel. If you want to capture just the carousel content, and not the entire page or screen, you can specify to take a screenshot of just the carousel:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;screenshot&quot;, &quot;element&quot;:&quot;body &gt; div.js-content &gt; div &gt; div &gt; div.js-body-content.page-content-wrapper &gt; div &gt; div &gt; section:nth-child(1) &gt; div:nth-child(1)&quot;}&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;Creating this kind of automation can be difficult at first. We are here to help. Don&#39;t hesitate to &lt;a href=&quot;http://browshot.com/contact&quot; target=&quot;_blank&quot;&gt;contact us&lt;/a&gt; if you need assistance.&lt;/p&gt;
&lt;/div&gt;
&lt;script&gt;hljs.initHighlightingOnLoad();&lt;/script&gt;</description>
        <pubDate>Wed, 08 Apr 2020 15:39:00 -0700</pubDate>
        <link>https://browshot.com/blog/2020/04/screenshot-carousel.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2020/04/screenshot-carousel.html</guid>
        
        <category>api</category>
        
        <category>automation</category>
        
        
      </item>
    
      <item>
        <title>Login to a website to take a screenshot</title>
        <description>&lt;p&gt;&lt;span class=&quot;icon&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://cdn.browshot.com/blog/images/login.png&quot; alt=&quot;Login to a website before taking a screenshot&quot; /&gt;&lt;/span&gt;
  With the introduction of &lt;a href=&quot;/blog/2020/04/automation-steps.html&quot;&gt;automation steps&lt;/a&gt;, it is easier to log in to any website before taking a screenshot. In this post, we&#39;ll show you how to log in to a website, Browshot, and take a screenshot after authentication.&lt;/p&gt;

&lt;p&gt;To log in from the home page of https://browshot.com/, a user must click on &lt;em&gt;Login&lt;/em&gt;. This displays a login form where the user has to enter his username and password. Then the user clicks on &quot;Login&quot; to obtain access to his dashboard.&lt;/p&gt;

&lt;img src=&quot;https://cdn.browshot.com/blog/images/browshot-login.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Login to Browshot&quot;&gt;

  

&lt;h2&gt;Find the element to interact with&lt;/h2&gt;
&lt;p&gt;We&#39;re going to build the different steps to log in; then we&#39;ll navigate to a different page in the dashboard and take a screenshot. The hardest part of the process is to get the identifier (called CSS selector) for each element we want to interact with: the button to click on, the input box in which to enter our username, etc. In order to find this identifier, we need to use the Developer Tools from your web browser. Press F12 to open the Developer Tools. Navigate to https://browshot.com/. In the Developer Tools, click on the mouse cursor in the top left corner (highlighted in red below).&lt;/p&gt;
&lt;div class=&quot;more&quot;&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/developer-tools.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;Developer Tools&quot;&gt;


&lt;p&gt;Then, move your mouse over the &lt;em&gt;Login&lt;/em&gt; button at https://browshot.com/. The HTML code corresponding to the button is now highlighted in the Developers Tools. Right-click on it and choose &lt;em&gt;Copy &gt; Copy selector&lt;/em&gt;:&lt;/p&gt;
&lt;img src=&quot;https://cdn.browshot.com/blog/images/copy-selector.png&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;CSS selector&quot;&gt;

&lt;img src=&quot;https://browshot.com/blog/images/css-selector.gif&quot; align=&quot;center&quot; style=&quot;margin-bottom: 20px;&quot; alt=&quot;CSS selector&quot;&gt;

&lt;p&gt;If you paste the value in a text editor, you get:
&lt;pre&gt;&lt;code class=&quot;json&quot;&gt;#login-btn&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;This is the CSS selector that identifies the &lt;em&gt;Login&lt;/em&gt; button. We&#39;re ready to take the first step to click on the &lt;em&gt;Login&lt;/em&gt; button:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;#login-btn&quot;}&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;The next steps are to enter the username and the password in the login form. In your browser, manually click on the &lt;em&gt;Login&lt;/em&gt; button to show the form. In the same way, use the Developer Tools to copy the CSS selector for the username and password input fields:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;#login-form &gt; input[type=text]:nth-child(1)
#login-form &gt; input[type=password]:nth-child(2)&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;We use the &quot;type&quot; command to type the username and passwords in their respective input fields:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;type&quot;, &quot;element&quot;:&quot;#login-form &gt; input[type=text]:nth-child(1)&quot;, &quot;value&quot;:&quot;username@email.com&quot;},
{&quot;command&quot;:&quot;type&quot;, &quot;element&quot;:&quot;#login-form &gt; input[type=password]:nth-child(2)&quot;, &quot;value&quot;:&quot;PASSWORD&quot;},&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;Then, we click on the &lt;em&gt;Login&lt;/em&gt; button at the bottom of the form:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;#login&quot;}&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;This last step authenticates the user and loads https://browshot.com/dashboard. We can take a screenshot  of the dashboard, or any other page. After login in, we wait a couple of seconds for the login to work, then navigate to https://browshot.com/dashboard/settings:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;sleep&quot;, &quot;value&quot;:&quot;5&quot;},
{&quot;command&quot;:&quot;navigate&quot;, &quot;value&quot;:&quot;https://browshot.com/dashboard/settings&quot;}&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;Finally, we wait a few seconds to allow the page to load. Then we take a screenshot of it:
  &lt;pre&gt;&lt;code class=&quot;json&quot;&gt;{&quot;command&quot;:&quot;sleep&quot;, &quot;value&quot;:&quot;5&quot;},
{&quot;command&quot;:&quot;screenshot&quot;}&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;

&lt;p&gt;The complete list of steps is:
&lt;pre&gt;&lt;code class=&quot;json&quot;&gt;[
  {&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;#login-btn&quot;},
  {&quot;command&quot;:&quot;type&quot;, &quot;element&quot;:&quot;#login-form &gt; input[type=text]:nth-child(1)&quot;, &quot;value&quot;:&quot;username@email.com&quot;},
  {&quot;command&quot;:&quot;type&quot;, &quot;element&quot;:&quot;#login-form &gt; input[type=password]:nth-child(2)&quot;, &quot;value&quot;:&quot;PASSWORD},
  {&quot;command&quot;:&quot;click&quot;, &quot;element&quot;:&quot;#login&quot;},
  {&quot;command&quot;:&quot;sleep&quot;, &quot;value&quot;:&quot;5&quot;},
  {&quot;command&quot;:&quot;navigate&quot;, &quot;value&quot;:&quot;https://browshot.com/dashboard/settings&quot;},
  {&quot;command&quot;:&quot;sleep&quot;, &quot;value&quot;:&quot;5&quot;},
  {&quot;command&quot;:&quot;screenshot&quot;}
]&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;You can add more steps to navigate to multiple pages and take multiple screenshots, click on elements in the pages, etc. We will post more examples on this blog.&lt;/p&gt;

&lt;p&gt;Creating this kind of automation can be difficult at first. We are here to help. Don&#39;t hesitate to &lt;a href=&quot;http://browshot.com/contact&quot; target=&quot;_blank&quot;&gt;contact us&lt;/a&gt; if you need assistance.&lt;/p&gt;
&lt;/div&gt;
&lt;script&gt;hljs.initHighlightingOnLoad();&lt;/script&gt;</description>
        <pubDate>Mon, 06 Apr 2020 15:39:00 -0700</pubDate>
        <link>https://browshot.com/blog/2020/04/login-to-website.html</link>
        <guid isPermaLink="true">https://browshot.com/blog/2020/04/login-to-website.html</guid>
        
        <category>api</category>
        
        <category>automation</category>
        
        
      </item>
    
  </channel>
</rss>
