-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
/
CHANGELOG
3126 lines (2743 loc) · 138 KB
/
CHANGELOG
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
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
v4.1.4
======
* Supported CDP versions: 85, 99, 100, 101
* [grid] Setting session-timeout as read timeout for http client (#10404)
* Add Windows 11 support to platform enum
* Enabling request retries for session handling (#9528)
* Use class' class loader when looking up `HttpClient` factory. (#10509)
* Fixing search in Java docs (#10415)
* Added fix to intercept PUT request
* [grid] Standalone should also shutdown when it has been drained
* [grid] Draining a Node after X sessions have been created (#9845)
* Fixing options handling for print command
* Fix links in JavaDocs (#10529)
* Introduce common interface for all web storage types (#10528)
* Added PATCH request
* Honoring proxy in ClientConfig (#10531)
* Return friendly names for Windows platforms like Mac does
* Support for sending firefox addon directory as temporary in remote sessions
* [grid] Closing input pipeline when client disconnects
v4.1.3
======
* Supported CDP versions: 85, 97, 98, 99
* [grid] Using DefaultSlotMatcher in DockerSessionFactory
* Removing XpiDriverService and XpiDriverInfo
* Implement event support for pointer device actions (#10198)
* Removing STP from SafariDriverService
* Fix modifier keys scope on Java Actions (#10333)
* Guarding runnables when scheduleAtFixedRate is used
* Acknowledging proxy config set in ClientConfig
* Make driver.close() tolerant to CDP failures (#10346)
* Fix issue "Incompatible types for '-' operation" in the Javascript executor example
* [grid] Refactoring rejectEvent and guarding UUID parsing
* [grid] Querying Node status only once at registration
* Add deprecated warnings to OperaDriver and OperaOptions
* Remove references to invalid errors (#10209)
* Removing deprecated methods from WebDriverWait, HttpMessage, CommandLine and DesiredCapabilities
* Avoid using ServiceLoader while creating FirefoxDriver instance
* [grid] Matching webview2 browser name with EdgeDriverService
* [grid] Pinging relay service to update health-check
* [grid] Adding a configuration flag to set a noVNC port.
* switch ByClassName locator from to "class name" (#10355)
* Ensure DevTools is augmented when using DriverService
* Fixed reading the data from the stream and fixed the size of chunks (#10409)
* [grid] Do not match empty capabilities
* [grid] Node capacity is given by available slots and usage below maxSessions.
* [grid] Grid is ready when Nodes are up and have availability.
* [grid] Improving /readyz return http code.
* Retry filter not used by default
* Add exponential backoff policy to the Retry request filter
* [grid] Preventing XSS attack.
v4.1.2
======
* Supported CDP versions: 85, 95, 96, 97
* Add new desktop cast command for Chromium
* BugFix: Update toJson() method creation for integer type in CdpClientGenerator
* Fix Javadocs FluentWait's sample usage wrt durations
* [grid] Throw ServerBindException when server cannot start due to network issues
* Add support for CDP Chrome 97
* Throw error when using custom client config with local driver
* Adding a builder() to all drivers to generate the correct default options instance
* Use class' class loader when looking up `HttpClient` factory
* Remove max duration value to allow retries during network connection failures
* allow setting a different keyboard or pointer for actions on input devices
* [grid] Guarding how the server reads parameters to keep it stable
* Remove connection timeout setter, a static 10s value is used
* [grid] Getting session requests from the queue faster
* [grid] Reworking how new session requests are processed, querying queue only
when Grid has availability
* [grid] Fix added missing quotation marks in examples (cli help)
* Replace deprecated OpenTelemetrySdk creation API
* [grid] Improving Node health check execution
* [grid] Adding back support for unix domain sockets
* Allow disabling tracing in RemoteWebDriver
* Replace dynamic proxy with ByteBuddy for WebDriverDecorator
* Log Timestamp flag added
v4.1.1
======
* Supported CDP versions: 85, 94, 95, 96
* Allow custom tracing to integrate with existing OpenTelemetry tracing
* Avoiding NoClassDefFoundError by waiting for completion of already started tasks
* use addon parameter with base64 encoding instead of path parameter
that requires using file detector and upload
* support installing temporary addon in Firefox
* Remove references to opera_blink in favour of opera
* BugFix: Handle null parameters in TracedCommandExecutor
* BugFix: Following redirects by default in HttpClient
* BugFix: Forwarding CDP/BiDi connections to the container in Dynamic Grid
* BugFix: Do not log screenshots payload in debug mode
* BugFix: Mapping Slot fields properly for json payloads
* BugFix: Configuring relay service via CLI
* BugFix: Adding a "bind-host" flag to start Grid properly when the
server cannot bind to the host, fixes this for environments like Docker
v4.1.0
======
* Supported CDP versions: 85, 94, 95, 96
* Removed USE_CHROMIUM from EdgeOptions as new Edge is the default
* [grid] Fixed command completion for ZSH when using the Selenium Server
* Pass WebDriver instead of Loggable to allow augmentation of HasLogEvents
* [grid] Using a random port when "-1" is set as port number for the Selenium Server
* Handle Json parsing error such that future messages are not blocked
* [grid] Fix host option
* Changing type of extraInfo from HashMap to ConcurrentHasMap to avoid
ConcurrentModificationException while reading exception message by parallel threads
* Add retry http request filter for transient errors.
* Fix Javadoc code block formatting
* [grid] Using non-loopback address when default config is used
* Fix classloading error in host identifier
* Split OpenTelemetry command in order to facilitate search by tags
v4.0.0
======
* Supported CDP versions: 85, 93, 94, 95
* Improved "relay" service description in help
* Switch to different JCIP annotations for Apache 2 license
* Deprecated USE_CHROMIUM so we can remove it after 4.0
* Add a --hub flag for the Node
v4.0.0-rc-3
===========
* Supported CDP versions: 85, 93, 94, 95
* Updated java dependencies
* Fixed bug in zsh completions
* Use the IANA port range for selecting random ports if there are
fewer than 5k ports to choose from
v4.0.0-rc-2
===========
* Supported CDP versions: 85, 93, 94
* Moved NetworkInterceptor to org.openqa.selenium.devtools
* NetworkInterceptor now takes a Filter to allow responses to be
captured and rewritten.
* Added a "relay" option to better support forwarding sessions to
something like the Appium server.
* Fixed CDP connection locking when called re-entrantly.
* Remove sessions from Redis backed session map on restart
* Accept "webSocketUrl" as a valid w3c capability name, as it's
declared in WebDriver Bidi
* Add strongly-typed methods for setting timeouts and other w3c
capabilities on the base options class.
* Enable live view for Dynamic Grid
* Merged devtools maven artifact into the main remote driver
* Added android capabilities to Chromium and Firefox options.
v4.0.0-rc-1
===========
* Supported CDP versions: 85, 92, 93.
* Only the name and stereotype are mandatory in nodeConfig.
* No longer sets unexpected alert value in Options by default.
* Update IE options class in each language to match the currently
supported capabilities in the IE Driver.
* Delete existing sessions if the Node is restarted.
* Sessions are now stopped when the Node is gracefully shutdown.
* Fixes file upload for Dynamic Grid
* Add docker max sessions flag. (#9688)
* Close DriverService and DriverCommandExecutor executor on
quit. (#9666)
* Handle empty inputs for JSON more gracefully.
* Ensure that default healthcheck duration is less than
the default node timeout duration.
* Better resource utilisation in the Distributor when starting
sessions.
* Implement ShadowDOM APIs in the Java bindings
* Routing VNC websockets through the Grid
v4.0.0-beta-4
=============
* Rework how the `Distributor` creates sessions to be more
spec-compliant.
* Rework internal structure of the New Session Queue.
* `DriverCommandExecutor` uses its own `ExecutorService` (#9430)
* Add proxy support to NettyClient (#9434)
* Handle bad gateway response from the server when starting a new
session (#9444)
* Expose session request metadata from the new session payload
* Implement getDomAttribute method in EventFiringWebDriver (#9394)
v4.0.0-beta-3
=============
* Allow RelativeBy to start with any locator, not just tag name
(#9273)
* Selenium-created sessions supporting CDP have a `se:cdp` capability,
pointing to the websocket address for CDP communication, and a
`se:cdpVersion` which indicates the version of the CDP to use.
* Correctly indicate the Firefox supports CDP v85
* Add support for CDP v90 and v91 and remove support for CDP v86 and
v87.
* Improving exception when server returns 504 (#9354)
* The node server rewrites cdp endpoints and versions into standard
`se:cdp*` ones.
* Allowing users to override recommended max sessions in Grid.
* Better platform matching in Grid.
* Use heartbeat to register the Node with the Distributor (#9321)
* Add logging of http exchange contents in debug mode.
* Fix getScreenshotAs: avoid unnecessary conversions (#9308)
* Docker fixes around starting containers with the correct network
name.
* Wait until Nodes are available before indicating that Grid is ready.
* Purge timed out requests sitting the queue at regular intervals
(#9283)
* Add null check before returning isDisplayed value (#9299)
* Added "/wd/hub" route to RouterServer for better backwards compat.
v4.0.0-beta-2
=============
* Use `opera` for Blink-based Opera versions
* Updated OpenTelemetry to 1.0.0
* Use standard OpenTelemetry mechanisms for configuring tracing.
* Make better use of `getDomAttribute` in `Select`
* [cdp] Added support for Firefox Nightly
* [cdp] Use `se:cdp` to report CDP endpoint
* [grid] Close resources leaks caused by http client not being
properly closed.
* [grid] Nodes will auto-detect their platform
* [grid] Make health check interval a configurable option for
Distributor role (#9272)
* [grid] Correctly propagate startup errors to the client
* [grid] Make session timeout configurable option for Node role
v4.0.0-beta-1
=============
* All `*Options` classes now serialise with w3c-safe keys. This means
that support for legacy options (eg. `firefox_binary` rather than
using the setting in `moz:firefoxOptions`) will need to be set
directly via a call to `setCapability`.
* FirefoxDriver requires geckodriver 0.29.0 or later
* Reworked `RemoteWebDriver.builder` to allow it to work as a primary
mechanism for creating a new `WebDriver` instance
* DevTools support for Firefox added
* Support multiple CDP versions simultaneously (currently v86-89)
* New commands to Get Timeouts, Print to PDF, Get DOM Attribute, Get
DOM Property
* Relative locators now return elements by proximity to last search
term.
* Refreshed Grid UI
* Legacy XPI driver marked as deprecated
* Removed reactor-netty httpclient
* Reworked how custom element locators work. They will try to be
remoted directly, before using a local implementation if remoting
fails.
* Allow `CustomLocator` instances to be bound to the server
automatically.
* Ensured locators are converted to CSS locator consistently.
* Ensure `Capabilities.merge` returns a new `Capabilities` instance
rather than modifying the existing one.
* Add `--allow-cors` flag to enable CORS support in the server
* Better declare services in our Java Module information
* Removed obsolete browsers from BrowserType
* Implemented the ability to get raw original message without
additional info from WebDriverException
* Allow max-sessions to be configured per driver on the command line
* Substantially improved javadocs for `WebDriverDecorator`
* Distributor now uses a proper session queue
* `FluentWait` performs waiting on the main thread to ensure
exceptions are thrown as expected.
* Changing default timeouts for HTTP clients: connect timeout is 10s,
read timeout is 3 min
* Moving to using immutable data structures where possible. `Point`
and `Rectangle` now have deprecated setters.
* Added methods to get container logs from the Grid
* Docker now mounts /dev/shm to browser containers.
* Docker instances can now save videos of test runs
* Docker containers now created with `autoRemoval` set to `true`
v4.0.0-alpha-7
==============
* Started to add new Grid UI.
* Add support for BASIC and DIGEST authentication.
* Add listener for DOM mutations.
* Add support for listening out for console log events.
* Experimental support for script pinning.
* Support multiple versions of CDP simultaneously.
* Fix getText atom for unicode character middle of word (#8736)
* Include original stack trace when throwing TimeoutException.
* Removed okhttp implementation of the http client.
* Add experimental "reactor" http client.
* [graphql] Add graphql query to retrieve session information for a
given session id.
* [grid] Support remoting CDP over the Grid.
* [grid] Record video only when `recordVideo` is sent in `se:options`.
* [grid] Securing 0mq when user provides a certificate.
* [grid] All messages on the 0mq event bus now have a secret.
* [grid] Provide a command line flag for creating SessionFactory
instances: `--driver-factory`.
* Added a JDBC-backed implementation of the SessionMap.
* [grid] Added a "New Session Queue" component.
* [grid] Added support for draining a Node. Once all sessions are
complete, the node will shutdown.
* [grid] Added a "One Shot Node" which starts draining once a session.
is started. This is designed for use in environments which will
restart nodes as required.
* [grid] Add a `/readyz` endpoint that conforms to k8s expectations
for an HTTP readiness probe.
v4.0.0-alpha-6
==============
* Ability to proxy CDP commands from the local end through the
fully-distributed Grid. The end point to connect to is reported via
"se:options -> cdp"
* Amended Augmenter to mixin `HasDevTools` if needed.
* Very, very basic support for GraphQL
* Ability to configure node on the command line by specifying
well-known browser names (eg. "-I firefox")
* Ability to set maximum number of concurrent sessions on a node.
* New reactor-based http client implementation. Set the
`webdriver.http.factory` system property to `reactor` try it out.
* Bumped OpenTelemetry version to 0.4.0
* Selenium Standalone and Hub now also accept requests to `/wd/hub`
* Implementing file uploading for distributed grid (and deleting
uploaded files when session is closed)
* Fix potential NPE on DeviceRotation. Fixes #8183
* Corrected the documentation for Protected Mode (#8163)
* Fix comments on Java Actions.moveToElement (#6974)
* Grid can be configured using TOML files.
* Fixing sendKeys to handle newline characters properly. Fixes #7886
* Added a `completion` command to generate a zsh autocompletion
file. This should be saved as `_selenium` on the `fpath`
* New `config` section in the `info` command.
v4.0.0-alpha-5
==============
* Implement "minimize window"
* Add `SameSite` attribute to `Cookie`
* Improve Docker support to use unix domain sockets and the
DOCKER_HOST env variable.
* Minimum supported Docker protocol is v1.40. This matches the release
on all platforms at 2020-03-13
* Stop driver server when session is over. Fixes #7989
* Reuse the same HTTP client instead of creating a client per
session. Fixes #7989
* Sending auth headers to the grid if username and password are
specified in the base URL. Fixes #8005
* Replace OpenTracing with OpenTelemetry
* Enabling IPv6 in the Grid, fixes #7541
* Add response to RemoteWebDriver's client log level (#7925)
* Add a command to run the message bus as a standalone component
* Make "info help" less misleading
v4.0.0-alpha-4
==============
* Added an "information" command to provide users with better
information about how to use features in Selenium.
* Rename "friendly" locators to "relative"
* Chrome Debugging Protocol commands now mirror latest CDP spec.
* Strengthen java deps now rules_jvm_external has been updated.
* Update EdgeOptions constructor to use new ms:edgeOptions capability
name (#7633)
* Add support for creating and removing virtual authenticators (#7760)
* Add support to debug virtual authenticators (#7842)
* Improving error message if a remote side responses with code 405
Method Not Allowed.
* Better traces via OpenTracing.
* Added Netty-based HTTP client (-Dwebdriver.http.factory=netty)
* Selenium server now uses Netty
* [grid] https between components (#7767)
* [grid] Added file upload endpoint to the new grid
* [grid] Adding ability to discover and start Edge (both
chromium-based and legacy)
* [grid] Only allow CORS when using a —allow-cors flag
* [docker] Re-enable existing docker functionality for Grid Nodes
* Checking for changes in frozen preferences in XPI-based
FirefoxDriver only
v4.0.0-alpha-3
==============
* Add "relative" locators. The entry point is through the `RelativeLocator`.
Usage is like `driver.findElements(withTagName("p").above(lowest));`
* Add chromedriver cast APIs to remote server (#7282)
* `By` is now serializable over JSON.
* Add ApplicationCache, Fetch, Network, Performance, Profiler,
ResourceTiming, Security and Target CDP domains.
* Fixing Safari initialization code to be able to use Safari Technology
Preview.
* Ensure that the protocol converter handles the new session responses
properly.
* Expose devtools APIs from chromium derived drivers.
* Expose presence of devtools support on a role-based interface
* Move to new Grid, deleting the old standalone server and grid implementation.
* Switch to using `HttpHandler` where possible. This will impact projects that
are extending Selenium Grid.
* Respect "webdriver.firefox.logfile" system property in legacy Firefox driver.
Fixes #6649
* Back out OpenCensus support: OpenTracing and OpenCensus are merging, so
settle on one for now.
* Only allow CORS when using a —allow-cors flag in the Grid server
* If you're using the Java Platform Module System, all modules
associated with the project are generated as "open" modules. This
will change in a future release.
* The version of Jetty being used is unshadowed.
v4.0.0.0-alpha-2
================
* Add Chromium-based Edge support. This involves adding a new Chromium driver to
the tree too.
* Extra domains added for CDP: Network, Performance, Security, Target
* Firefox: enable full page screenshots
* Better support for Java 9+ modules
* Start reworking HTTP abstractions. These should better support streaming, and
so will not require us to hold all requests in memory.
v4.0.0.0-alpha-1
================
* Many deprecated methods and classes deleted.
* Alpha version of new Grid Server, supports "standalone", "hub",
"node", and completely distributed usage.
* Basic support for using Docker containers with the new Grid Server.
* Basic support for CDP landed via the "DevTools" interface.
* Basic support for OpenTracing landed. Use the "--ext" flag to the
new Grid Server to provide the classpath to an OpenTracing
implementation.
* Added support for WebSockets to the HttpClient
* Location of safari driver now configurable using
"webdriver.safari.driver" system property.
* #6649: Legacy firefox driver respects "webdriver.firefox.logfile"
system property.
* Added command to open a new window.
* Element screenshotting now possible
* Selenium Server now no longer includes HtmlUnit by default
* New Grid can output logs in single-line json format to stdout
* #6617 Implement equals() and hashCode() in `Select` element wrapper
v3.141.59
=========
* Restored remoteHost support
* [Grid] Adding a test to check that remoteHost is properly read and
set.
* Fix mime-types of displayed content in help servlet.
* Encourage people to access help over https.
* Implement `WrapsElement` by `Select` element wrapper (#6616)
* Version number is an even better approximation of π.
v3.141.5
========
* Default the number of threads assigned to the server to 200,
which is what it was in 3.13.0
v3.141.0
========
* Removed HtmlUnit driver and all its dependencies (including HtmlUnit and
Apache HttpClient) from selenium-server-standalone. This drastically
reduced the size of selenium server distribution package.
* Hub status should only count reachable proxies. Fixes #6494.
* Deprecated the original Actions API in favour of the W3C approach.
* Correct localisation of platform name (#6491)
* Beta commands in SafariDriver for opening a new window or tab.
* Clean up of internal of `Select` element wrapper (#6501)
* Acknowledge that Mojave is a `Platform` (#6552)
* Deleted many command-line options marked as deprecated some time
ago.
* Removed Selenium's own deprecated `Duration` and `Clock` classes in
favour of those provided by the JRE.
* Fixed WebDriverBackedSelenium servlet by registering a session
finalization listener.
* Installing Firefox extensions in the same form as they provided,
either as a file or as a directory. With the release of Firefox 62
Mozilla discontinued support for unpacked sideloaded extensions in
Release channel. Users must themselves choose proper format to use
in their tests depending on the browser version they run tests in.
* Prepended command names in https error response reports (#6321)
* Removed the apache-backed httpclient.
* Fixing regression in Grid: if -hubPort was specified through CLI
params but not -hubHost, the node tried to register to
http://null:hubPort.
* Fixing regression in Grid by using browserTimeout again to set
timeouts in the HttpClient.
* Grid: adding image for Safari Technology Preview, fixes #6297
* Grid: Nodes and Hubs can now be started in any order, and
configuration will be correct Fixes #3064.
* Added a basic ServiceBuilder for Internet Explorer (#6181)
* Version number is a better approximation of π.
v3.14.0
=======
* Move or deprecate internal classes in java client
* Introduce basic JPMS support. This is experimental.
* The browser name of the Safari Tech Preview is not "safari" but
"Safari Technology Preview". Who knew?
* Deprecated our own `Clock` interface for `java.time.Clock`
* Completely removed the GSON dependency. We now use reflection to try
and find the class.
* Tiny clean up to try and make Grid a little more performant.
* Added new capabilities for safari driver: automaticInspection and
automaticProfiling (#6095) This commit is from the "Fix a Bug,
Become a Committer" workshop held at SeConf India.
* Removed support for geckodriver 0.13. It is time.
* Adding High Sierra to the platform set. Fixes #5969
* Enriching Hub Status to include Node info (#6127)
* Fixing potential Zip Slip Vulnerability, see
https://snyk.io/research/zip-slip-vulnerability
* Allow temporary installation of FF extension (#1) (#5751)
* Fix windowSize option in Firefox in Javascript (#6075)
* Make ConnectionType serialize as integer (#6176)
* Pass found elements to the EventListener's afterFind method (#6191)
* Add native events under se:ieOptions. (#6183)
v3.13.0
=======
* Introduced our own JSON parser and outputter, allowing GSON to be
removed from our dependencies.
* Exposing a `RemoteWebDriverBuilder` which can be used to construct
instances of selenium when talking to servers that speak the w3c
protocol.
* Fixed loading of Grid hub and node config files.
* Fixed `noProxy` handling in Grid.
* Added bindings for custom ChromeDriver commands
(GET_NETWORK_CONDITIONS, SET_NETWORK_CONDITIONS and
DELETE_NETWORK_CONDITIONS) that allows client code to utilize
built-in throttling functionality. (#3479)
* Minimised data being encoded as JSON when serialising Java objects.
* EventFiringWebDriver now fires events before and after `getText` and
implements `HasCapabilities`.
v3.12.0
=======
* Added `User-Agent` header to requests from Selenium to give remote
ends more visibility into distribution of clients.
* Remove GSON from how we coerce JSON to Java types.
* Clean up the internals of Selenium's JSON handling, including
deprecating places where GSON leaks from our APIs.
* Grid assignes node to a random free port if not specified.
explicitly. Fixes #5783.
* Addressed concerns about backward compatibility of Grid's `-host`
parameter.
* Implemented WebStorage in ChromeDriver and FirefoxDriver.
* Documentation clean up in `By`.
* `before/afterGetScreenshotAs` added to to WebDriverEventListener.
v3.11.0
=======
* Implemented `equals` and `hashCode` for `LoggingPreferences`
* Deleted deprecated methods from `*Options` and `MutableCapabilities`
* Converting an object to JSON now doesn't include the object's hash
code.
* Removed deprecated methods from `RemoteWebDriver`.
* Switching Grid to use OkHttp rather than the Apache HttpClient.
* Internal change to better use Selenium's abstractions for handing
JSON in Grid.
* Removed deprecated `GridRegistry.getHttpClientFactory` method.
* Removed `Registry.getConfiguration`
v3.10.0
=======
* Deprecate internal Duration in favor of java.time.Duration
* Fix handling of IE capabilities in Grid Nodes. Fixes #5502
* Fix problem where Grid wasn't starting Safari sessions
* Migrate Selenium Grid to reduce exporting GSON and Apache HttpClient
as much to public APIs.
* Migrate Grid to use Selenium's own abstractions where possible. This
means that more of it is using OkHttp rather than the Apache
HttpClient.
* Fix an issue where RemoteProxy instances were causing an exception
to be thrown if they weren't marked as a ManagedService.
* Deleting ability to run html suites with selenium-server-standalone,
users are adviced to use htmlrunner
v3.9.1
======
* OkHttp backed instances can now connect to servers requiring
authorisation. Based on PR #5444 proposed by @valfirst.
v3.9.0
======
* Switched to OkHttp for all HTTP communication. The version used can
be changed back to the Apache HttpClient by setting the
`webdriver.http.factory` system property to `apache`.
* Removed passthrough mode for the server.
* Grid: (implementation note) Start migrating servlets used to be
command handlers.
* Upgraded every dependency to latest versions.
* Added varargs methods to `ExpectedConditions` in order to avoid
annoying `Arrays.asList`.
* Better logging when new session creation errors.
v3.8.1
======
* Fixed Chrome mutator injecting null binary path into new session payload.
* Added mutator that stips grid-specific capabilities hurting IE driver.
* Fixed SafariOptions construction from plain Capabilities object.
v3.8.0
======
* Dropped support for PhantomJS, it's recommended to use headless Firefox or
Chrome instead.
* Node skips configurations that does not match current platform, no more IE
slots on Linux-based nodes.
* Introduced unique ids for node slot configurations. Hub injects UID of the
matched configuration to the new request payload. Node mutates capabilities
with matching config UUID only. This allows to have multiple configurations
for the same browser in node config file.
* Implemented matching of some browser-specific capabilities on Grid hub,
namely "marionette" for Firefox (default is true) and "technologyPreview"
for Safari (default is false).
* "technologyPreview" capability is now honored again by SafariDriver.
* Added initial support for managing Grid Hubs and Nodes via JMX
* Removed `Alert.authenticate` and supporting classes
* Better handling of configuring SafariDriver via capabilities.
v3.7.1
======
* Including httpcore in the packaged libs.
* Sending geckodriver logs to stderr by default. The default log level
is low enough that the log does not look polluted. Geckodriver does
not allow to separate its own log from the browser logs, so messages
from the browser log can appear in the log even on the lowest level.
* Avoid sending the shutdown command to driver services that don't
support it.
* Add support for customizing the Grid Registry.
v3.7.0
======
* Firefox and Chrome binary paths specified in Grid Node configs are
now honoured.
* W3C spec compliant drivers need not return RGBA values for colours
defined in CSS.
* Minimise disk usage when starting new remote sessions.
* SafariDriver and legacy FirefoxDriver can now be configured when
using the remote server through Capabilities. Notably, this allows
the Safari Technology Preview to be used if it's installed.
* Implemented the ability to configure the firefox log target using
the driver service builder or a system property. Logs are sent to
the null output stream by default. Fixes #4136
* Simulate some w3c Actions commands using the old APIs. This allows a
local end that only speaks the JSON Wire Protocol to use
"Actions.moveTo" when communicating with a W3C compliant remote
end. Apparently, people need this.
* More fluent APIs in `*Options` classes.
* Moving some safari config options from `SafariOptions` to the
`SafariDriverService`.
* In Grid and Remote, force the use of the legacy Firefox driver when
marionette flag is set.
* The protocol handshake now uses a `CapabilityTransform` to convert
an JSON Wire Protocol capability to one or more w3c
capabilities. These are located using the standard Java
ServiceLoader framework.
* The protocol handshake also uses a `CapabilitiesFilter` that
extracts keys and values specific to a browser from a JSON Wire
Protocol capabilities map. Again, these are loaded using the
`ServiceLoader` framework.
* `requiredCapabilities` are now no longer sent across the wire.
* Fixed handling of unrecognized platform names returned by remote
end. #4781
* Better error messages from the htmlrunner.
* Migrated from using `DesiredCapabilities` to either
`MutableCapabilities` or (preferably) `ImmutableCapabilities`.
* Move building of locators to How enum
v3.6.0
======
* Remove direct dependency on HTMLUnit and PhantomJS from Maven
artifacts.
* All `*Option` classes now extend `MutableCapabilities`
`new RemoteWebDriver(new ChromeOptions());`
* Deprecating constructors that don't take strongly-typed `*Options`.
* Improved exceptions when a `Wait` times out when using a
`WrappedWebDriver`.
* Added `Interactive` interface to EventFiringWebDriver. Fixes #4589
* Add options to start Firefox and Chrome in headless modes.
v3.5.3
======
Important note:
* The new standalone server and Grid Node feature a "pass through"
mode. If you see changes to the Selenium WebDriver "logging" APIs or
automatic capture of screenshots on error (or if you want the old
behaviour back) you can do so by executing:
`java -jar selenium-server-standalone-3.5.3.jar -enablePassThrough false`
* Allow user-provided DriverProviders to override default providers in
passthrough mode.
* Fixes issue with W3C Actions not being properly filled when multiple
input sources are used.
* Platform that represent platform families ("WINDOWS", "UNIX", "MAC",
and "IOS") return `null` from `Platform.getFamily`.
* Handle null return values from chromedriver. Fixes #4555
* Synchronized "platform" and "platformName" capability values. Fixes #4565
* Add iOS `Platform`.
* Fix wrapping of maps with null values. Fixes #3380
* Grid: Add new w3c compatible `status` endpoints for Hub and nodes.
* Grid: Properly parse responses from upstream nodes that are not
200. Fixes issue where `NoSuchElementException` was mistaken for a
`NoSuchSessionException`.
* Grid: Handle re-encoding issue when transferring text from the
endpoint node to the local end.
v3.5.2
======
Important note:
* The new standalone server and Grid Node feature a "pass through"
mode. If you see changes to the Selenium WebDriver "logging" APIs or
automatic capture of screenshots on error (or if you want the old
behaviour back) you can do so by executing:
`java -jar selenium-server-standalone-3.5.2.jar -enablePassThrough false`
* Avoid encoding numbers as floats rather then longs in JSON payloads.
* New "pass through" mode supports file uploads again.
* Added support for querying running sessions via the
"/wd/hub/sessions" endpoint
* Fix a NullPointerException when deserializing exceptions from a
remote webdriver.
* Handle the `macOS` as a valid platform name, as this is used by
safaridriver.
v3.5.1
======
Important note:
* The new standalone server and Grid Node feature a "pass through"
mode. If you see changes to the Selenium WebDriver "logging" APIs or
automatic capture of screenshots on error (or if you want the old
behaviour back) you can do so by executing:
`java -jar selenium-server-standalone-3.5.1.jar -enablePassThrough false`
* Bump guava to version 23. This is work around an issue where maven
will select guava's android variant if using a ranged selector.
v3.5.0
======
Note: Never pushed to maven due to problems resolving guava version.
Important note:
* The new standalone server and Grid Node feature a "pass through"
mode. If you see changes to the Selenium WebDriver "logging" APIs or
automatic capture of screenshots on error (or if you want the old
behaviour back) you can do so by executing:
`java -jar selenium-server-standalone-3.5.0.jar -enablePassThrough false`
* Bump guava to version 22.
* Add support for a new "pass through" mode. This allows a connection
from your test's RemoteWebDriver, through the Grid Hub, to a Grid
Node, and down to a DriverService and thence the browser to use the
same WebDriver protocol (the Json Wire Protocol or the W3C one) end
to end without translation. This mode can be disabled by starting
the standalone server or Grid node with `-enablePassThrough false`
* Pin Guava to version 21+. This fixes problems with lambdas being
used as ExpectedConditions.
* Start making *Option classes instances of Capabilities. This allows
the user to do:
`WebDriver driver = new RemoteWebDriver(new InternetExplorerOptions());`
* Better handling of `getText` when confronted with a Shadow DOM
* Better logging when using an Augmenter fails.
* Make it easier to add new @FindBy annotations.
* Attempt to kill processes before draining input, error, and output
streams. This should reduce apparent hanging when closing Firefox in
particular.
* Grid will make use of W3C capabilities in preference to the JSON Wire
Protocol ones.
* Fixing boolean command line arguments (#3877)
v3.4.0
======
* Geckodriver 0.16 is strongly recommended
* LiFT package is now available as a separate maven dependency.
* Deprecated numerous constructors on RemoteWebDriver that are no
longer useful.
* `requiredCapabilities` are now being removed. Use
`desiredCapabilities` instead.
* Legacy Firefox support broken out into a `XpiDriverService`, but
still relies on the same `webdriver.xpi` as before.
* Better support for W3C endpoints
v3.3.1
======
* Better support for geckodriver v0.15.0. Notably, exceptions returned
from the remote end are now unwrapped properly.
* Fix a bug with the status page of the standalone server.
* Deprecated `Capabilities.isJavascriptEnabled`
v3.3.0
======
* Support for geckodriver v0.15.0.
* Deprecated seldom used FirefoxDriver constructors.
* Added javadocs to show best way to create a new FirefoxDriver:
```
DesiredCapabilities caps = new FirefoxOptions()
// For example purposes only
.setProfile(new FirefoxProfile())
.addTo(DesiredCapabilities.firefox());
WebDriver driver = new FirefoxDriver(caps);
```
* Stream New Session capabilities to disk before use to avoid eating
every byte of available memory.
* Beginnings of local-end implementation of the w3c New Session
capabilities. There's still some work to do.
v3.2.0
======
* Updated Guava to version 21 and started using Java 8 features. Users
are recommended to update too.
* Fix a problem starting Firefox caused by missing libraries
* Experimental support for the W3C Action endpoints
* Remove deprecated `FluentWait.until(Predicate<?>)` method. This
should make lambdas work properly with Wait instances now.
* Bump htmlunitdriver version to 2.24
* [Grid] Allow for customisation of TestSlot (#3431)
v3.1.0
======
* Update how the WebDriverException gathers system info. Resolves an
issue with slow-downs on OS X Sierra.
* Update Wait and FluentWait for Java 8. Requires an update to the
latest guava version 21.0
* Remove old marionette actions support.
* Selenium server now understands a "-version" flag.
* `WebElement.getText` now returns text from the Shadow DOM.
* Implemented a more straightforward way to specify firefox binary in
GeckoDriverService builder.
* Firefox can now pick a channel to start from on Windows via
`FirefoxBinary.Channel`
* ChromeDriver now supports `NetworkConnection` interface.
* htmlrunner bug fixes, in particular around `getValue`, and relative
paths to the suite file.
* Fixes to make htmlrunner work.
* Removed native events from FirefoxDriver.
* Truncate the string representation of capabilities for display purposes.
* Implemented session storage for w3c codec.
* Change server dependency to htmlunit 2.23.2.
* [Grid] DefaultCapabilityMatcher now considers "browserVersion".
* [Grid] Fix node registration issue for Se2.x nodes with -servlets.
* [Grid] Windows nodes are no longer displayed as "mixedOS".
* [Grid] browser version capability specified on node command line no longer parsed to a Number
v3.0.1
======
* Include ElementScrollBehavior enum in the release.
* Add dependency on HTMLUnit to be included in the standalone server.
* Grid new session requests pass original request through to the node
without any modifications.
* Fix NPE in htmlrunner when port is not specified.
* FirefoxDriver (legacy) fix to cleanup temp filesystem on quit (#2914 #2908).
v3.0.0
======
IMPORTANT CHANGES
* Firefox is only fully supported at version 47.0.1 or earlier. Support
for later versions of firefox is provided by geckodriver, which is
based on the evolving W3C WebDriver spec, and uses the wire protocol
in that spec, which is liable to change without notice.
* You may wish to choose an ESR release such as 45.4.0esr or earlier.
* Firefox 47.0.0 is not supported at all.
Other major changes:
* Stability fixes in Grid.
* All Grid nodes can now offer help.
* Updated to the latest version of HtmlUnitDriver.
* Re-enabled log gathering for the standalone server.
* Firefox profile is passed to both the legacy FirefoxDriver and
geckodriver.
v3.0.0-beta4
============
IMPORTANT CHANGES
* Firefox is only fully supported at version 47.0.1 or earlier. Support
for later versions of firefox is provided by geckodriver, which is
based on the evolving W3C WebDriver spec, and uses the wire protocol
in that spec, which is liable to change without notice.
* You may wish to choose an ESR release such as 45.4.0esr or earlier.
* Firefox 47.0.0 is not supported at all.
Other major changes:
* Remove OSS safaridriver in preference for Apple's own SafariDriver
that ships as part of Safari 10.
* [Grid] -nodeConfig (json) files have a new flatter format (#2789)
* [Grid] Fix #2721, -nodeConfig (json) settings were not always
applied
* [Grid] Cleanup the api for RegistrationRequest -- will break
compilation for people moving from 2.x -- removed the ability to
change the GridNodeConfiguration reference via the
RegistrationRequest object and removed all other setters
* Include the selenium version in exceptions (again).
* [HTML suite runner] Better flag compatibility with the 2.x
selenium-server-standalone.
* Fix #2727, combine -jettyThreads and -jettyMaxThreads (#2735)
* [atoms] Cleaning up getAttribute dependencies, reducing size from
36K to 7K
* Better support for the W3C webdriver wire codec.
* Added ability to use FirefoxOptions when starting firefox.
* Fixed a bug where the firefox profile was not being passed to the
geckodriver.
* SafariDriver's Technology Preview can be used if installed.
v3.0.0-beta3
============
* The HTML table runner can be downloaded as selenium-html-runner.jar.
* leg-rc jar is no longer bundled into the main selenium jar. Instead,
it needs to be downloaded separately.
* Removed deprecated SessionNotFoundException in favour of the
NoSuchSessionException.
* Added a "protocol handshake" on starting a remote webdriver. We now
log the wire dialect spoken (original as "OSS" and the version
tracking the W3C spec as "W3C"). This may result in multiple calls
to the new session endpoint on local end start up.
* Removed command names ending with "*w3c" and instead handle this
with different codecs.
* Switch to using atoms for 'getAttribute' and 'isDisplayed' when
communicating with a W3C remote end.
v3.0.0-beta2
============
* maven packaging fixes
* Update GeckoDriver --port argument in all bindings
* System property webdriver.firefox.marionette now forces the server in marionette or legacy firefox driver mode, ignoring any related Desired Capability
* Grid fix NPE's on registration when -browser not specified
v3.0.0-beta1
============
IMPORTANT CHANGES
* Minimum java version is now 8+
* The original RC APIs are only available via the leg-rc package.
* To run exported IDE tests, ensure that the leg-rc package is on the
classpath.
* Support for Firefox is via Mozilla's geckodriver. You may download
this from https://github.com/mozilla/geckodriver/releases
* Support for Safari is provided on macOS (Sierra or later) via
Apple's own safaridriver.
* Support for Edge is provided by MS:
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
* Official support for IE requires version 9 or above. Earlier
versions may work, but are no longer supported as MS has
end-of-lifed them.
Other major changes:
* New html-table runner backed by WebDriver.
* Unused command line arguments are now no longer parsed.
v2.53.0