/
index.html
554 lines (448 loc) · 28.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
<!DOCTYPE html>
<link rel="stylesheet" href="/css/header.css"/>
<html>
<head>
<title>Selenium Support</title>
<link rel="icon" href="/favicon.ico" type="image/png">
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<header id="header" class="header">
<a href="https://selenium.dev" class="headerLink">
<img class="logo logo-large" src="/images/selenium_logo_large.png"/>
<img class="logo logo-small" src="/images/selenium_logo_square_green.png"/>
<img class="logo logo-small logo-hide" src="/images/selenium_logo_square_white.png"/>
</a>
<a id="dropdownButton" class="dropdownButton" onClick="toggleMenu()">MENU +</a>
<nav id="navbar" class="navbar">
<div class="nav-item" onClick="toggleAboutNav()">
<span>About</span>
<div id="aboutArrow" class="arrow-down"></div>
</div>
<ul id="aboutSubnav" class="about-subnav">
<div class="subnav subnav-item">
<a href="/about">About</a>
</div>
<div class="subnav subnav-item">
<a href="/events">Events</a>
</div>
<div class="subnav subnav-item">
<a href="/ecosystem">Ecosystem</a>
</div>
<div class="subnav subnav-item">
<a href="/history">History</a>
</div>
<div class="subnav subnav-item">
<a href="/getinvolved">Get Involved</a>
</div>
<div class="subnav subnav-item">
<a href="/sponsors">Sponsors</a>
</div>
</ul>
<a class="nav-item" href="/downloads">Downloads</a>
<a class="nav-item" href="/projects">Projects</a>
<a class="nav-item" href="/documentation">Documentation</a>
<a class="nav-item" href="/help">Support</a>
<a class="nav-item" href="/blog">Blog</a>
<div class="nav-item">
<div class="search-bar-container">
<script>
(function() {
var cx = '018435082943254453647:ktxsp1-jcb8';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<gcse:searchbox-only></gcse:searchbox-only>
<img class="search-icon" src="/images/search.png"/>
</div>
</div>
</nav>
</header>
<body>
<script>
function activateSearch() {
console.log('ACTIVATE')
}
function toggleMenu() {
const navbarItems = document.getElementsByClassName("nav-item");
const navbarElements = [...navbarItems];
const smallLogos = document.getElementsByClassName("logo logo-small");
const logoElements = [...smallLogos];
const header = document.getElementById("header");
const dropdownButton = document.getElementById("dropdownButton");
const subnavs = document.getElementsByClassName("about-subnav");
const subnavElements = [...subnavs];
const aboutArrow = document.getElementById("aboutArrow");
if(dropdownButton.innerText === "MENU +") {
dropdownButton.innerText = "MENU -"
} else dropdownButton.innerText = "MENU +"
navbarElements.forEach(element => {
if(element.className === "nav-item") {
element.className += " dropdown-active"
} else {
element.className = "nav-item"
}
})
subnavElements.forEach(element => {
element.className = "about-subnav";
});
aboutArrow.className = "arrow-down";
logoElements.forEach(element => {
if(element.className.includes("logo-hide")) {
element.className = "logo logo-small"
} else {
element.className += " logo-hide"
}
})
if(header.className === "header") {
header.className += " dropdown-active"
} else {
header.className = "header"
}
}
function toggleAboutNav() {
const aboutSubnav = document.getElementById("aboutSubnav");
const aboutArrow = document.getElementById("aboutArrow");
if(aboutSubnav.className === "about-subnav") {
aboutSubnav.className += " about-subnav-active";
} else {
aboutSubnav.className = "about-subnav"
}
if(aboutArrow.className === "arrow-up") aboutArrow.className = "arrow-down";
else aboutArrow.className = "arrow-up";
}
</script>
<link rel="stylesheet" href="/css/blog.css"/>
<link rel="stylesheet" href="/css/main.css"/>
<link href="https://fonts.googleapis.com/css?family=Encode+Sans" rel="stylesheet">
<body>
<section class="hero">
<a href="/blog"><h1>Selenium Blog</h1></a>
</section>
<div class="filter-container-mobile">
<div class="filter-toggle" onClick="toggleFilter()">
<span id="plus" class="plusminus show">+</span>
<span id="minus" class="plusminus">-</span>
<span>Filter</span>
</div>
<div id="filterToggleContainer" class="filter-toggle-container">
<div class="blog-filter">
<div class="filter-section">
<h3>Search blog</h3>
<div class="search-container">
<div class="search-bar-container">
<script>
(function() {
var cx = '018435082943254453647:ktxsp1-jcb8';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<gcse:searchbox-only></gcse:searchbox-only>
</div>
</div>
</div>
<div class="filter-section">
<h3>Archive</h3>
<div class="archive-link-container">
<a href="/blog/2018">2018</a>
<a href="/blog/2017">2017</a>
<a href="/blog/2016">2016</a>
<a href="/blog/2015">2015</a>
</div>
</div>
<div class="filter-section">
<h3>Support the Selenium project</h3>
<p>Want to support the Selenium project? Learn more about sponsorship or view the full list of sponsors.</p>
<div class="learn-more button-container">
<a href="/sponsors">
<div class="button support-button"><b>LEARN MORE</b></div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="blog-container">
<div class="blog-content">
<div class="container dark-background">
October 13, 2016
<a href="https://selenium.dev/blog/selenium-3.0/"><h2>Selenium 3.0: Out Now!</h2></a>
<p>We are very pleased to announce the release of Selenium 3.0. If you’ve been waiting for a stable release since 2.53.1, now’s your chance to update. And if you do, here is what you’ll find:</p>
<p>As we’ve said before, for users of the WebDriver APIs this is a drop-in replacement. You’ll find that modern browsers, such as Chrome and Edge will continue to work just as before, and we’ve taken the opportunity to fix some bugs and improve stability. Selenium Grid users may require updates to their configuration as the json config file format has been updated, as have some of command line parameter options, but the upgrade should also be smooth.</p>
<p>The major change in Selenium 3.0 is we’re removing the original Selenium Core implementation and replacing it with one backed by WebDriver. This will affect all users of the Selenium RC APIs. For more information, please see the previous post.</p>
<p>A lot has changed in the 5 years between versions 2 and 3. When we shipped Selenium 2, the Selenium project was responsible for providing the driver for each browser. Now, we are happy to say that all the major browser vendors ship their own implementations (Apple, Google, Microsoft, and Mozilla). Because the browser vendors know their browsers better than anyone, their WebDriver implementations can be tightly coupled to the browser, leading to a better testing experience for you.</p>
<p>The other notable change has been that there is now a W3C specification for browser automation, based on the Open Source WebDriver. This has yet to reach “recommendation” status, but the people working on it (including members of the Selenium project!) are now focusing on finishing the text and writing the implementations.</p>
<p>Mozilla has been a front-runner in implementing the W3C WebDriver protocol. On the plus side, this has exposed problems with the spec as it has evolved, but it also means that Firefox support is hard to track as their engineering efforts have been forward looking, rather than on supporting the current wire protocol used by Selenium WebDriver. For now, the best advice we can offer is for you to try the latest release of geckodriver and Selenium together.</p>
<p>These are exciting times for browser automation! Selenium 3.0 is a major release and we’re looking forward to improving things further, as well as tracking the ongoing work of the W3C spec. Our goal is to keep the changes your tests need to deal with to an absolute minimum, to continue preserving the hard work that’s gone into writing your existing tests.</p>
<p>As a personal note, I’d like to say thank you to each of the many people that have worked so hard to make Selenium 3 possible. That’s not just the developers and contributors to the Open Source project (past and present), but also the engineers from Google, Microsoft, Mozilla, and Apple, and everyone involved with the W3C spec. I’d also like to say thank you to everyone who’s taken the time to report bugs, our users and our community. The project is great fun to work on and you’re the reason for that. A final thank you is due to the Software Freedom Conservancy, who have provided invaluable help with the logistics of running a large OSS project.</p>
<p>Happy hacking, everyone! May your tests run fast and true!</p>
<div class="share-container">
<h3>Share this: </h3>
<a href="mailto:?&subject=Selenium Blog - Selenium%203.0%3a%20Out%20Now%21&body=https%3a%2f%2fselenium.dev%2fblog%2fselenium-3.0%2f"><img class="social-icon" src="/images/mail.png"/></a>
<a href="https://twitter.com/home?status=https%3a%2f%2fselenium.dev%2fblog%2fselenium-3.0%2f"><img class="social-icon" src="/images/twitter.png"/></a>
<a href="https://www.facebook.com/sharer/sharer.php?u=https://selenium.dev"><img class="social-icon" src="/images/facebook.png"/></a>
</div>
</div>
<div class="container dark-background">
October 4, 2016
<a href="https://selenium.dev/blog/selenium-3-is-coming/"><h2>Selenium 3 Is Coming</h2></a>
<p>Selenium 3 is coming! As I write this, we think that “beta 4” will be the last beta before the official 3.0 release. I’m here to tell you about what’s changed, and what impact this will have on your testing.
TL;DR:</p>
<ul>
<li>WebDriver users will just find bug fixes and a drop-in replacement for 2.x.</li>
<li>Selenium Grid users will also find bug fixes and a simple update.</li>
<li>The WebDriver APIs are now the only APIs actively supported by the Selenium project.</li>
<li>The Selenium RC APIs have been moved to a “legacy” package.</li>
<li>The original code powering Selenium RC has been replaced with something backed by WebDriver, which is also contained in the “legacy” package.</li>
<li>By a quirk of timing, Mozilla have made changes to Firefox that mean that from Firefox 48 you must use their geckodriver to use that browser, regardless of whether you’re using Selenium 2 or 3.</li>
</ul>
<p>In more depth:</p>
<p>When we released Selenium 2.0 in 2011, we introduced the new WebDriver APIs, and encouraged everyone to start moving to them. If you’re using the WebDriver APIs, then Selenium 3.0 is a simple drop-in upgrade. We’ve not changed any of the public WebDriver APIs, and the code is essentially the same as the last 2.x release. If you’re using Selenium Grid, the same applies: in most cases, you can just drop in the new JAR (or update your maven dependency to 3.0.0), and you’re done.</p>
<p>If the update to Selenium 3 is such a non-event, why did we call this Selenium 3.0? To answer this question, I first need to provide some history, and tell you a little about how Selenium works under the hood. The very first version of Selenium was “just” a very complicated Javascript framework, running in the browser and interpreting the table-based tests you may be familiar with if you use Selenium IDE. We call this “Selenium Core”. This Javascript framework formed the basis of the original implementation of Selenium RC (the oldest set of Selenium APIs, where all the method and functions were on the “Selenium” interface, and which have been deprecated for some time now). Over time, the needs of modern web testing have grown ever more complicated and sophisticated, and Selenium Core is now less capable of meeting these needs than it was before.</p>
<p>With Selenium 3.0, we are deleting the original Selenium Core implementation. If you use the old RC interfaces, we provide an alternative implementation that’s backed by WebDriver. This is the same “webdriver-backed selenium” that has been available as part of Selenium 2 since its release. Because the underlying technology has changed from Selenium Core to WebDriver, you may find some places where your existing tests using RC run into issues. Our experience with migrating suites is that it’s normally a systemic issue that can be fixed with a minimal engineering effort (that is, the problem is normally isolated to a few places, and these can be rewritten to avoid problems)</p>
<p>We’re also removing the original Selenium RC APIs from the main downloads. If you’re a Java user, and need to use them to support existing tests, then you’ll need a dependency to “org.seleniumhq.selenium:selenium-leg-rc:3.0.0” (or later!). It’s strongly recommended that you do not do this unless you absolutely need to.
If you’re someone who runs tests exported from IDE in the table format, there is now a new test runner that the project has made available for you to use that can be downloaded from the project’s website. It takes the same arguments as the old runner, and we’ve done our best to ensure the output of tests remains the same too.</p>
<p>At the same time as the Selenium project is shipping Selenium 3.0, Mozilla are changing the internals of Firefox in a way that makes it more stable and secure, but which also makes the community provided Firefox Driver no longer work. As such, if you use Firefox for your testing, you’ll need to use the geckodriver, which is an executable similar to the chromedriver and the Microsoft WebDriver for Edge. You’ll need to start using geckodriver even if you’re using Selenium 2 — the change is in the browser, not Selenium. Please be aware that geckodriver is alpha software, based on the evolving W3C WebDriver standard: everyone’s working flat out to give you the best testing experience they can, but there are undoubtedly some bumps in the road when it comes to testing with Firefox.</p>
<p>This release marks the culmination of a lot of hard work by the Selenium committers and community. I’d like to thank everyone who has been part of this process, and the Selenium users around the world who have done so much to make the project as successful as it is.</p>
<div class="share-container">
<h3>Share this: </h3>
<a href="mailto:?&subject=Selenium Blog - Selenium%203%20Is%20Coming&body=https%3a%2f%2fselenium.dev%2fblog%2fselenium-3-is-coming%2f"><img class="social-icon" src="/images/mail.png"/></a>
<a href="https://twitter.com/home?status=https%3a%2f%2fselenium.dev%2fblog%2fselenium-3-is-coming%2f"><img class="social-icon" src="/images/twitter.png"/></a>
<a href="https://www.facebook.com/sharer/sharer.php?u=https://selenium.dev"><img class="social-icon" src="/images/facebook.png"/></a>
</div>
</div>
<div class="container dark-background">
July 29, 2016
<a href="https://selenium.dev/blog/announcing-selenium-3-beta/"><h2>Announcing Selenium 3.0-beta1</h2></a>
<p>At SeleniumConf in 2013, we announced that a new major version of Selenium would be released “by Christmas”. Fortunately, we never said which Christmas, as it has taken us a while to make all the changes we wanted to make! We’re excited to announce the release of the first beta — Selenium 3.0.0-beta1.</p>
<p>We’d love you to try it out on your projects, and provide us with feedback on where the rough edges are before we ship the 3.0 itself! Please remember that this is a beta release, so your feedback is incredibly helpful and valuable in order to help us smooth any rough edges.</p>
<p>For the last six years we’ve been advising users to switch to the newer WebDriver APIs and to stop using the original RC APIs. With Selenium 3.0, the original implementation of RC has been removed, replaced by one that sits on top of WebDriver. For many users, this change will go completely unnoticed, as they’re no longer using the RC APIs. For those of you who still are, we’ve done our best to make the change as smooth as possible, but we welcome high quality bug reports to help us fix any problems that occur. Maven users will need to add a dependency on the new “leg-rc” package to access the old RC APIs.</p>
<p>There are some other changes that you might need to be aware of:</p>
<ul>
<li>You’ll need to be running Java 8 to use the Java pieces of Selenium. This is the oldest version of Java officially supported by Oracle, so hopefully you’re using it already!</li>
<li>Support for Firefox is via Mozilla’s geckodriver.</li>
<li>Support for Safari is provided on macOS (Sierra or later) via Apple’s own safaridriver.</li>
<li>Support for Edge is provided by MS through their webdriver server.</li>
<li>Only versions 9 or above of IE are supported. Earlier versions may work, but are no longer supported as MS no longer supports them.</li>
</ul>
<p>We’ll be posting more information about Selenium 3.0 to this blog soon, but until then if you’re interested in learning more then a recent webinar by Simon is a great place to start.</p>
<div class="share-container">
<h3>Share this: </h3>
<a href="mailto:?&subject=Selenium Blog - Announcing%20Selenium%203.0-beta1&body=https%3a%2f%2fselenium.dev%2fblog%2fannouncing-selenium-3-beta%2f"><img class="social-icon" src="/images/mail.png"/></a>
<a href="https://twitter.com/home?status=https%3a%2f%2fselenium.dev%2fblog%2fannouncing-selenium-3-beta%2f"><img class="social-icon" src="/images/twitter.png"/></a>
<a href="https://www.facebook.com/sharer/sharer.php?u=https://selenium.dev"><img class="social-icon" src="/images/facebook.png"/></a>
</div>
</div>
<div class="pagination-container">
<div class="button-container">
<a href="/blog/page/3/">
<div class="button page-button"><b>OLDER POSTS</b></div>
</a>
</div>
<div class="button-container">
<a href="/blog/">
<div class="button page-button"><b>NEWER POSTS</b></div>
</a>
</div>
</div>
</div>
<div class="filter-container">
<div class="blog-filter">
<div class="filter-section">
<h3>Search blog</h3>
<div class="search-container">
<div class="search-bar-container">
<script>
(function() {
var cx = '018435082943254453647:ktxsp1-jcb8';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<gcse:searchbox-only></gcse:searchbox-only>
</div>
</div>
</div>
<div class="filter-section">
<h3>Archive</h3>
<div class="archive-link-container">
<a href="/blog/2018">2018</a>
<a href="/blog/2017">2017</a>
<a href="/blog/2016">2016</a>
<a href="/blog/2015">2015</a>
</div>
</div>
<div class="filter-section">
<h3>Support the Selenium project</h3>
<p>Want to support the Selenium project? Learn more about sponsorship or view the full list of sponsors.</p>
<div class="learn-more button-container">
<a href="/sponsors">
<div class="button support-button"><b>LEARN MORE</b></div>
</a>
</div>
</div>
</div>
</div>
</div>
<!DOCTYPE html>
<link rel="stylesheet" href="/css/main.css"/>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<div class="selenium-supporters separator">
<h2>Selenium Supporters</h2>
<div class="sponsors">
<div class="sponsor-logo"><img class="sponsor-logo" src="/images/sponsors/applitools.png"/></div>
<div class="sponsor-logo"><img class="sponsor-logo" src="/images/sponsors/browserstack.png"/></div>
<div class="sponsor-logo"><img class="sponsor-logo" src="/images/sponsors/CBT.png"/></div>
<div class="sponsor-logo"><img class="sponsor-logo" src="/images/sponsors/experitest.jpg"/></div>
<div class="sponsor-logo"><img class="sponsor-logo" src="/images/sponsors/saucelabs.png"/></div>
<div class="sponsor-logo"><img class="sponsor-logo" src="/images/sponsors/synthetics.png"/></div>
</div>
</div>
<body>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<div class="selenium-supporters-bottom">
<h2>Supporting Supporters</h2>
<div class="sponsors-bottom">
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/bestcasino.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/chameleonjohn.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/groundwork.jpg"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/henix.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/KatalonStudio.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/mailosaur.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/Perfecto.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/serentaflowers.jpg"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/valsa.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/Cigniti.jpg"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/qytera.png"/></div>
<div class="sponsor-logo-bottom"><img class="sponsor-logo" src="/images/sponsors/Tricentis.jpg"/></div>
</div>
</div>
<body>
<!DOCTYPE html>
<link rel="stylesheet" href="/css/main.css"/>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<div class="support-selenium-container">
<div class="support-selenium">
<h2>Support the Selenium Project</h2>
<p>Want to support the Selenium project? Learn more or view the full list of sponsors.</p>
<div class="button-container">
<a href="/sponsors">
<div class="button"><b>LEARN MORE</b></div>
</a>
</div>
</div>
</div>
<body>
</body>
<!DOCTYPE html>
<link rel="stylesheet" href="/css/footer.css"/>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<footer>
<div onClick="toggleSitemap()" class="toggle-container">
Sitemap
<div id="sitemapArrow" class="arrow-down"></div>
</div>
<div id="navLinks" class="nav-links">
<div class="footer-section">
<a href="/about"><h3>About</h3></a>
<a href="/events">Events</a>
<a href="/blog">News</a>
<a href="/history">History</a>
<a href="/sponsor">Contribute</a>
<a href="/sponsors">Sponsors/Sponsoring</a>
<a href="/getinvolved">Get Involved</a>
<a href="/ecosystem">Ecosystem</a>
<a>License</a>
</div>
<div class="footer-section">
<a href="/downloads"><h3>Downloads</h3></a>
<a href="/maven">Maven</a>
<a href="/thirdparty">Third Party</a>
<a href="https://github.com/SeleniumHQ/selenium">Source Code</a>
</div>
<div class="footer-section">
<a href="/projects"><h3>Projects</h3></a>
<a href="/projects/#selenium-webdriver">Selenium WebDriver</a>
<a href="/projects/#selenium-grid">Selenium Grid</a>
<a href="/projects/#selenium-remote">Selenium Remote Control</a>
<a href="/projects/#selenium-ide">Selenium IDE</a>
</div>
<div class="footer-section">
<a href="/help"><h3>Support</h3></a>
<a href="/blog">Blog</a>
<a href="/documentation">Documentation</a>
</div>
</div>
<div class="social">
Follow us on twitter to keep up-to-date with all Selenium development and community activity!
<div class="social-icons">
<a href="mailto:selenium@sfconservancy.org"><img class="social-icon" src="/images/mail.png"/></a>
<a href="https://github.com/SeleniumHQ/selenium"><img class="social-icon" src="/images/github.png"/></a>
<a href="https://twitter.com/SeleniumHQ"><img class="social-icon" src="/images/twitter.png"/></a>
<a href="https://www.facebook.com/Selenium2.WebDriver"><img class="social-icon" src="/images/facebook.png"/></a>
<a href="https://www.youtube.com/channel/UCbDlgX_613xNMrDqCe3QNEw"><img class="social-icon" src="/images/youtube.png"/></a>
</div>
</div>
</footer>
<div class="sfc">
<p style="text-align:right;">All rights reserved, Software Freedom Conservancy</p>
</div>
<body>
<script>
function toggleSitemap () {
const sitemapArrow = document.getElementById("sitemapArrow");
const navLinks = document.getElementById("navLinks");
if(sitemapArrow.className === 'arrow-down') {
sitemapArrow.className = 'arrow-up'
} else {
sitemapArrow.className = 'arrow-down'
}
if(navLinks.className === 'nav-links') {
navLinks.className = 'nav-links show'
} else {
navLinks.className = 'nav-links'
}
}
</script>
<script>
function toggleFilter() {
const filter = document.getElementById("filterToggleContainer");
const plus = document.getElementById("plus");
const minus = document.getElementById("minus");
if (filter.className === "filter-toggle-container") {
filter.className = "filter-toggle-container show"
plus.className = "plusminus"
minus.className = "plusminus show"
} else {
filter.className = "filter-toggle-container"
plus.className = "plusminus show"
minus.className = "plusminus"
}
}
</script>