Skip to content

Commit 7238790

Browse files
committed
add privacy policy
1 parent d72ab59 commit 7238790

File tree

4 files changed

+325
-2
lines changed

4 files changed

+325
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
title: "Selenium Privacy Policy"
3+
linkTitle: "Selenium Privacy Policy"
4+
date: 2025-02-19
5+
tags: [ "selenium", "manager", "privacy", "telemetry" ]
6+
categories: [ "Privacy" ]
7+
author: Titus Fortner [@titusfortner](https://titusfortner.com)
8+
description: >
9+
Selenium has introduced a Privacy Policy to clarify our data collection practices, why telemetry exists, and how we ensure compliance with GDPR and CCPA.
10+
---
11+
12+
Selenium has always been committed to open-source transparency and user privacy, but we recognize that
13+
we could have done a better job communicating the details of Selenium Manager's telemetry collection.
14+
15+
To address this, we have published a comprehensive [Privacy Policy](/privacy) that
16+
clearly explains:
17+
* What data is collected (and what isn’t)
18+
* How we ensure compliance with GDPR and CCPA
19+
* Why Selenium Manager includes opt-out telemetry
20+
* How users can easily disable telemetry
21+
22+
The bottom line is that Selenium Manager collects only anonymous technical information to help us improve Selenium.
23+
24+
Additionally, starting in Selenium 4.30, Selenium Manager displays a one-time console message the first time
25+
telemetry is sent. This obviously and proactively informs users about telemetry, their right to opt out,
26+
and provides a direct link to the Privacy Policy.
27+
28+
**Quick Recap of what Selenium Manager collects:**
29+
30+
✔ Selenium version (to ensure compatibility across versions)
31+
✔ Programming language (Java, Python, JavaScript, .NET)
32+
✔ Operating system and CPU architecture (to prioritize OS support)
33+
✔ Browser and version (to understand browser usage trends)
34+
✔ Approximate geolocation (city-level), temporarily inferred from the IP (IP is discarded after processing)
35+
36+
❌ No usernames, emails, or personal identifiers
37+
❌ No browser history or test execution data
38+
❌ No full IP addresses (only used temporarily for location inference, then discarded)
39+
❌ No cookies or persistent tracking
40+
41+
See everything for yourself: [Selenium Manager Public Analytics](https://plausible.io/manager.selenium.dev)
42+
43+
44+
## Opting Out of Telemetry
45+
46+
Like many other open-source projects, we use opt-out telemetry to ensure we receive representative, anonymous data that
47+
helps improve Selenium. We understand that some people prefer opt-in telemetry,
48+
and we explain our reasoning in detail in the [Privacy Policy](https://www.selenium.dev/privacy/#opt-out)
49+
50+
Regardless, it is quite easy to disable telemetry by either:
51+
52+
1. Setting an environment variable
53+
54+
```sh
55+
SE_AVOID_STATS=true
56+
```
57+
58+
2. Using a configuration file
59+
60+
```ini
61+
avoid-stats = true
62+
```
63+
64+
Please see the [Selenium Manager documentation](https://www.selenium.dev/documentation/selenium_manager/) for further
65+
details on how to do this.
66+
67+
## Insights
68+
69+
**Interesting tidbits we’ve learned from having opt-out telemetry over the past year:**
70+
71+
* Selenium gets over 1 million unique users a week
72+
* The number of unique users is growing at a rate of 10% per month
73+
* Over 80% of sessions are on Windows
74+
* Almost 90% of sessions use Chrome
75+
* Fewer than 1% of sessions are with Safari or Internet Explorer
76+
* A lot more sessions are with C# and Python than Java, and very few people are using Ruby and JavaScript
77+
78+
<em>Note 1: The data only represents users who have updated to Selenium 4.19 or greater</em><br />
79+
<em>Note 2: A unique user represents a unique session from a given IP address for that day</em><br />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
---
2+
title: Privacy Policy
3+
linkTitle: privacy
4+
aliases:
5+
[
6+
"/pt-br/privacy/",
7+
"/zh-cn/privacy/",
8+
"/ja/privacy/",
9+
"/other/privacy/",
10+
]
11+
---
12+
13+
{{< blocks/section color="selenium-green" height="min" >}}
14+
<div class="mx-auto text-center p-4">
15+
<h1 class="d-1">Selenium Privacy Policy</h1>
16+
</div>
17+
{{< /blocks/section >}}
18+
19+
<div class="row p-5">
20+
<div class="alert alert-green bg-transparent ps-lg-5" role="alert">
21+
<h2 class="alert-heading pb-3">Selenium's Commitment to Privacy</h2>
22+
<div class="w-lg-75">
23+
<p>
24+
Selenium is committed to protecting user privacy and ensuring transparency in how we collect and use
25+
data.
26+
This policy explains what data we collect, why we collect it, and how users can control their privacy
27+
preferences.
28+
</p>
29+
<p>
30+
The Selenium project collects anonymous data from visitors to our website
31+
as well as usage data through <a href="https://www.selenium.dev/documentation/selenium_manager">Selenium
32+
Manager</a>.
33+
Selenium uses <a href="https://plausible.io/privacy-focused-web-analytics">Plausible Analytics</a>
34+
to manage this data due to its focus on privacy.
35+
</p>
36+
</div>
37+
</div>
38+
</div>
39+
40+
<div class="row td-box--100 p-5">
41+
<div class="alert alert-orange bg-transparent ps-lg-5" role="alert">
42+
<h2 class="alert-heading pb-3">Website Analytics (selenium.dev)</h2>
43+
<div class="w-lg-75">
44+
<p>
45+
Selenium uses <a href="https://plausible.io">Plausible's</a> hosted solution to track information
46+
about visitors to our website (<a href="https://www.selenium.dev">selenium.dev</a>).
47+
The following information is collected:
48+
</p>
49+
<ul>
50+
<li>Number of visitors to the site</li>
51+
<li>Most viewed pages</li>
52+
<li>General geographic distribution (country-level)</li>
53+
<li>Referral sources (e.g., search engines, social media, direct visits)</li>
54+
</ul>
55+
<p>
56+
Plausible does not use cookies, does not track users across sites, and does not collect personal
57+
information.
58+
</p>
59+
<p>
60+
All information we collect is publicly available on the
61+
<a href="https://plausible.io/selenium.dev">Selenium Website Plausible Dashboard</a>
62+
</p>
63+
<p>
64+
This data helps us understand how users engage with the Selenium website to improve our
65+
documentation and content.
66+
</p>
67+
</div>
68+
</div>
69+
</div>
70+
71+
<div class="row p-5">
72+
<div class="alert alert-cyan bg-transparent ps-lg-5" role="alert">
73+
<h2 class="alert-heading pb-3">Selenium Manager Telemetry</h2>
74+
<div class="w-lg-75">
75+
<p>
76+
Selenium Manager, a tool for managing browser drivers, collects anonymous usage data to
77+
help us understand which platforms and configurations need the most support.
78+
</p>
79+
<p>
80+
Data Collected:
81+
</p>
82+
<ul>
83+
<li>Selenium version</li>
84+
<li>Programming language (Java, Python, JavaScript, .NET)</li>
85+
<li>Operating system and CPU architecture</li>
86+
<li>Browser and version (managed by Selenium Manager)</li>
87+
<li>Approximate geolocation (city-level), derived temporarily from the IP address (IP is discarded after
88+
processing)
89+
</li>
90+
</ul>
91+
<p>
92+
What is NOT collected:
93+
</p>
94+
<ul>
95+
<li>Personal information (e.g., usernames, emails)</li>
96+
<li>Browser history or test execution details</li>
97+
<li>Full IP addresses (only used temporarily for location inference, then discarded)</li>
98+
<li>Cookies or persistent tracking identifiers</li>
99+
</ul>
100+
<p>
101+
All information we collect is publicly available on the
102+
<a href="https://plausible.io/manager.selenium.dev">Selenium Manager Plausible Dashboard</a>
103+
</p>
104+
</div>
105+
</div>
106+
</div>
107+
108+
<div class="row td-box--100 p-5">
109+
<div class="alert alert-orange bg-transparent ps-lg-5" role="alert">
110+
<h2 class="alert-heading pb-3">GDPR & CCPA Compliance</h2>
111+
<div class="w-lg-75">
112+
<p>
113+
Selenium Manager’s telemetry is designed to comply with GDPR and CCPA by collecting only anonymized,
114+
non-personal data and providing users full control over their participation.
115+
Below is a detailed breakdown of compliance with key GDPR provisions.
116+
</p>
117+
118+
<h4>Lawfulness & Transparency (Articles 5, 6, 12)</h4>
119+
<ul>
120+
<li>Selenium Manager processes anonymized, non-personal data under legitimate interest
121+
(Article 6(1)(f)), allowing data collection for product improvement while respecting user privacy.
122+
</li>
123+
<li>Users are informed about telemetry collection through:
124+
<ul>
125+
<li>Change logs and documentation updates</li>
126+
<li>Blog posts</li>
127+
<li>A one-time console message when telemetry is first sent</li>
128+
</ul>
129+
</li>
130+
</ul>
131+
132+
<h4>Data Minimization & Purpose Limitation (Articles 5, 25)</h4>
133+
<ul>
134+
<li>Only essential, anonymous usage data is collected to guide project improvements.</li>
135+
<li>IP addresses are not stored; they are used temporarily to derive city-level geolocation before being
136+
discarded.
137+
</li>
138+
<li>Data is not used for advertising, profiling, or tracking individual users.</li>
139+
</ul>
140+
141+
<h4>User Rights (Articles 12-23)</h4>
142+
<ul>
143+
<li>Right to Object (Article 21): Users have the right to object to the processing of
144+
their data under legitimate interest. Selenium Manager respects this right by providing:
145+
<ul>
146+
<li>clear and accessible opt-out mechanisms, allowing users to disable telemetry at any time.
147+
</li>
148+
<li>information regarding the user's right to opt out via the measures detailed in the
149+
Lawfulness & Transparency section above.
150+
</li>
151+
</ul>
152+
</li>
153+
<li>Right to Access, Rectification, and Erasure (Articles 15-17): These rights apply when personal data
154+
is collected and stored. Since Selenium Manager only processes anonymous, non-personal data and does
155+
not retain user information, these rights are not applicable.
156+
</li>
157+
</ul>
158+
159+
<h4>Storage & Security (Articles 5, 32)</h4>
160+
<ul>
161+
<li>Data is aggregated and anonymized, ensuring no link to individual users.</li>
162+
<li>No long-term storage of raw data; all processing is done within GDPR-compliant
163+
<a href="https://plausible.io/privacy-focused-web-analytics#hosted-in-the-eu-powered-by-european-owned-cloud-infrastructure">EU infrastructure</a>
164+
</li>
165+
Everything Selenium Manager collects is publicly accessible in the
166+
<a href="https://plausible.io/manager.selenium.dev">Selenium Manager Plausible Dashboard</a> for full
167+
transparency.
168+
</li>
169+
</ul>
170+
</div>
171+
</div>
172+
</div>
173+
174+
<div class="row td-box--100 p-5">
175+
<div class="alert alert-blue bg-transparent ps-lg-5" role="alert">
176+
<h2 class="alert-heading pb-3">Selenium Manager Telemetry is Opt-Out</h2>
177+
<div class="w-lg-75">
178+
<p>
179+
While some open-source projects use opt-in telemetry, Selenium requires a representative dataset to
180+
accurately assess project usage and prioritize improvements. With multiple language implementations and
181+
distribution methods, opt-in telemetry would not provide meaningful insights, particularly for
182+
cross-language comparisons.
183+
</p>
184+
<p>
185+
Many well-known open-source projects, such as <a
186+
href="https://learn.microsoft.com/en-us/dotnet/core/tools/telemetry">.NET CLI</a>, <a
187+
href="https://docs.brew.sh/Analytics">Homebrew</a>, <a
188+
href="https://nextjs.org/telemetry">Next.js</a>, and <a
189+
href="https://docs.gitlab.com/ee/user/admin_area/usage_statistics.html">GitLab</a>, use opt-out
190+
telemetry for similar reasons. </p>
191+
<p>Additionally, Selenium faces unique challenges in even providing an
192+
opt-in mechanism — there is no universal way to prompt users across all language bindings and package
193+
distribution methods. An unrepresentative dataset would prevent us from accurately assessing project
194+
usage and making informed improvements. For Selenium, the real choice is not
195+
between opt-in and opt-out, but between opt-out and no telemetry at all.
196+
</p>
197+
</div>
198+
</div>
199+
</div>
200+
201+
<div class="row p-5">
202+
<div class="alert alert-green bg-transparent ps-lg-5" role="alert">
203+
<h2 id="opt-out" class="alert-heading pb-3">How to Opt Out of Selenium Manager Telemetry</h2>
204+
<div class="w-lg-75">
205+
<p>
206+
If you prefer not to share anonymous usage data, you can disable telemetry, the detailed instructions
207+
can be found in the <a href="../documentation/selenium_manager">Selenium Manager Documentation</a>,
208+
but broadly consists of
209+
methods:
210+
</p>
211+
<h4>Option 1: Use an Environment Variable</h4>
212+
<pre><code>SE_AVOID_STATS=true</code></pre>
213+
214+
<h4>Option 2: Use a Configuration File</h4>
215+
<pre><code>avoid-stats = true</code></pre>
216+
217+
<p>
218+
Once disabled, Selenium Manager will not send any telemetry data.
219+
</p>
220+
</div>
221+
</div>
222+
</div>
223+
224+
<div class="row p-5">
225+
<div class="alert alert-cyan bg-transparent ps-lg-5" role="alert">
226+
<h2 id="feedback" class="alert-heading pb-3">Feedback</h2>
227+
<div class="w-lg-75">
228+
<p>
229+
If you have suggestions for how we can improve out implementations, please reach out to the Selenium
230+
team:
231+
</p>
232+
<ul>
233+
<li><a href="/support">Selenium Support</a></li>
234+
<li><a href="mailto:[email protected]">[email protected]</a></li>
235+
</ul>
236+
</div>
237+
</div>
238+
</div>

website_and_docs/hugo.toml

+7-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ section = ["HTML", "print"]
115115

116116
[params]
117117
copyright = "Software Freedom Conservancy"
118-
# privacy_policy = "https://policies.google.com/privacy"
118+
privacy_policy = "/privacy"
119119

120120
# First one is picked as the Twitter card image if not set on page.
121121
images = ["images/selenium_4_logo.png"]
@@ -326,6 +326,12 @@ parent = "About"
326326
url = "/sponsor"
327327
weight = 70
328328

329+
[[menus.main]]
330+
name = "Privacy Policy"
331+
parent = "About"
332+
url = "/privacy"
333+
weight = 80
334+
329335
[[menus.main]]
330336
identifier = "Downloads"
331337
name = "Downloads"

website_and_docs/layouts/partials/footer.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
</div>
2727
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
2828
{{ with .Site.Params.copyright }}<small class="text-white">&copy; {{ now.Year}} {{ .}} {{ T "footer_all_rights_reserved" }}</small>{{ end }}
29-
{{ with .Site.Params.privacy_policy }}<small class="ml-1"><a href="{{ . }}" target="_blank" rel="noopener">{{ T "footer_privacy_policy" }}</a></small>{{ end }}
29+
{{ with .Site.Params.privacy_policy }}<p class="mt-2"><a href="{{ . }}">{{ T "footer_privacy_policy" }}</a></p>{{ end }}
3030
{{ if not .Site.Params.ui.footer_about_disable }}
3131
{{ with .Site.GetPage "about" }}<p class="mt-2"><a href="{{ .RelPermalink }}">{{ .Title }}</a></p>{{ end }}
3232
{{ end }}

0 commit comments

Comments
 (0)