forked from SeleniumHQ/selenium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
2499 lines (2180 loc) · 111 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
v3.8.0
======
* Added 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 `MutableCapbilities`
`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 prefernce 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
=======
FINAL 2.X RELEASE.
No more HtmlUnitDriver... Moved to a subproject https://github.com/SeleniumHQ/htmlunit-driver
Java:
* Query Selenium Server to retrieve actual running port. Fixes #1299
* Upgrading HtmlUnit to 2.20
* Java: Introducing NoSuchSessionException in the core API
* Fixing memory leak in TemporaryFileSystem Fixes #1679
* Fixing rectangle dimension, and adding equals and hashCode
* Java: Adding a new W3C-compatible string error code
* Add support to listen "refresh" events. Fixes #1584
* extended ExpectedConditions with a list of new ones. New logic operators + conditions for css and html attributes
* Java: Deleting webbit a test server
Grid:
* cleanup cycle needs to be persisted to allMap, since that's where it's read from in other places. this stuff needs some cleanup...
* adding grid e2e distribution test
* fix mixed content issue
* when sorting nodes for consideration, also take into account last time accessed for a more even distribution across nodes over the lifetime of the grid.
* Also fix using the RemoteProxy's getResourceUsageInPercent instead of calculating it in the sort. Fixes #1673
* make HttpClientFactory private methods protected to allow one to extend / override.
v2.52.0
=======
Firefox:
* Weakening platform restriction to enable 64-bit support
* Fixing closed window handling in FF45
* Implementing a capability that disables overlapping checks - "overlappingCheckDisabled"
WebDriver:
* Fix deselecting options in <select>, actually throw Exceptions documented
* handle special case spellcheck attribute Fixes #1605
Grid:
* Allow forwarded response to be modified by CommandListener
v2.51.0
=======
Firefox:
* finding another edge case where we need to check -1 from the right and bottom of the element's rect
* stop gap to help with elementFromPoint not being completely reliable
* Implementing ability to return non-boolean capabilities
* Bumping up the max version
* Fixing scrolling to elements in overflow:hidden blocks. Fixes issue #1527
* Fixing issue #1509
* Deleting deprecated constant
* Deleting unused method FirefoxBinary.createProfile
WebDriver:
* Fixing httpOnly cookies in HtmlUnit driver
* Adding close connection support to HttpClient to combat hanging open files Fixes #1080
* Increasing log buffer max size
* optimize JsonToBeanConverter In case the input is a JsonNull, return null asap.
* Add toString() to DefaultElementLocator
* fix #1575
v2.50.1
=======
* add a way to add to the list of capabilities to consider to the default capability matcher
* Grid: Fixing timeout issue again... Why isn't it covered by tests? A rhetorical question...
* Java: Improving handling of marionette errors
* Java: Replacing ByteArrayOutputStream with CircularOutputStream to prevent OOM exception. Fixes issue #427
* Java: Moving CircularOutputStream to another package (it's an internal class so no need to create a copy)
* fix #1562
v2.50.0
=======
WebDriver:
* Firefox: fixing sendKeys throwing "cross-process JS call failed " in FF45
* Firefox: fixing click to multirect elements broken by the previous PR
* Check element corners and middle for clickability
* Fix keyCodes for some characters in the FirefoxDriver.
* Firefox: fixing malformed URL handling. Fixed issue #1248
* Prevent Firefox from opening a page on a second or later run and/or after some amount of time
* Fixing executable finder on Windows
* Fixing HtmlUnit driver to pass recently added tests
* Firefox: fixing appending to contenteditable elements. Fixes issue 1419
* correct javascript remote client ui executor to use new promise based execute introduced by 0fa587 Fixes #1521
* Firefox: Adding an extra check to result wrapper. Fixes issue #1426
* Changes to simplify the execution of finding elements.
* Fixing issue #1479. The only reasonable thing we can do for select elements is to disable clickability checking, see https://gist.github.com/p0deje/c549e93fa19bf7aaee49
Grid:
* Found a better place to convert seconds to milliseconds
v2.49.1
=======
Grid:
* Fixing timeout issue in the Grid.
WebDriver:
* Allow GeckoDriverService to be extended.
* Update tagName test searching for "" to throw
v2.49.0
=======
WebDriver:
* Add maven coordinate for the Firefox Driver when built using Buck.
* Remove guava dep on the selenium-apis when built using Buck.
* on osx for firefox, fallback to checking homebrew install, if the default isn't there
* Pass Options.ime() through to the wrapped driver.
* Fixing HTML suite test runner
* Bump guava to version 19
* Ensure that the buck-built core library has no third party dependencies.
* Updating textContent attribute test for IE9
* Adding appropriate wait to AuthenticatedPageLoadingTest
* Refactor concrete WebDriverException#getSupportUrl's
* Fix a NullPointerException in RemoteWebDriver.getCurrentUrl
* Reduces time wasted in when using a native driver
* add the useful information about the session / capabilities in the exception when the 'browser may have died'
* give the cleaner almost double the time to clean up the sessions (a whopping 9 more ms). Hopefull will deflake this test in CI.
* Adding El Capitan (OS X 10.11) to Platform
* Updating IE driver to fix clearing of <input type='number'> fields
* Treat a null response to getCookies as [].
* Restore a isNativeEventsEnabled check.
* Updating TestNG.
* firefox: Throw error when element cannot be clicked
* Include Windows 10 in the Platform enum.
* adding selenium server pass throughs for W3C dialect of alert / window / cookie commands.
* clearing a number input with invalid text, should actually clear it.
* Add innerHTML attribute support to HtmlUnitDriver
* Add textContent attribute support to HtmlUnitDriver
* make RemoteMouse public, akin to RemoteKeyboard. Not sure why it wasn't made public when it was originally moved out of RWD.
* Use platform-dependant line separator instead of hardcoded '\n'.
* Safari should only specify MAC as platform in default desired capabilities
* improve javadoc for FluentWait
* Changing interface name to be more Java-ish
* Update GeneratedJsTestServlet to work with test files that use Closure's module syntax.
* Adding release-v3 crazyfun target
* should be able to send keys to a content editable div that is initially empty
* Implementing pure WebDriver grid server (v.3)
* Making BrowserLauncherFactory non-static, to avoid global configuration, for better testability and configurability (per object, not globally)
* Server: Moving shared classes to a more appropriate place out of the legacy server namespace
* Deleting RemoteControlLauncher as it is just a couple of static methods to parse command line options, that should belong to the server.
* Refactoring GridLauncher: replacing big switch with a map of simple launchers; it's a step toward decomposition of the GridLauncher and dynamic discovery of the elements that can be launched.
* Refactoring GridLauncher build process
* Decoupling node registration module (SelfRegisteringRemote) from concrete implementation of the server to be run on the node.
* Refactoring grid node registration procedure to make server start/stop methods as simple as possible.
* Breaking another dependency of Grid on RC server
* Deleting fail-fast check of browser configuration, this breaks another Grid dependency on parts of RC server. The check must be performed in RC server (if ever).
* Actually fix the Safari BUCK build
* Monkey-patching W3C-compatible cookie serialization to fix Marionette. A more proper fix would be to change the parameters of a Command from Map to Object.
* There is no need to create a profile for Marionette
* removing prebuilt SafariDriver extension, bumping version number to 2.48
* Fixing tests for JsonToBeanConverter to avoid "error" key collision that has got new semantics in the standard
* Stop exposing embedded jetty out of SeleniumServer
* Breaking unwanted grid dependency on parts of RC server
* Deleting JsonKey, it's a useless abstraction
* Breaking unwanted grid test dependency on RC server (the removed attribute is not used actually)
* Fixes #1140, #1334, #1263, #669, #1165, #1132, #1186, #1203, #1214, #1242
#1241, #1240, #1238, #1237
v2.48.2
=======
WebDriver:
* Update fix for ChromeDriver to work with Marionette/Wires also.
v2.48.1
=======
WebDriver:
* Fix #1123, ChromeDriver doesn't start up.
v2.48.0
=======
WebDriver:
* java: add ExpectedConditions#numberOfWindowsToBe
* Bump the buck version to the latest version.
* fix maven build for jetty 9
* adding pom files for jetty 9 repakced jars and the empty-javadoc jar used to upload to maven central
* Restoring use of queued thread pool in the hub
* Deleting commented code
* Fixing UploadServlet in test environment to conform to servlet-api 3.1
* Update jetty readme
* Bump the Jetty version from 7 to 9
* Updating screenshot code to retain scroll bars in required directions.
* Updating screenshot code to prevent resizing if window is large enough.
* Removing superfluous comment that was causing javadoc build error in ci
* fixing the remaining jdk 8 javadoc errors
* Make the javadocs for java/server too.
* fixing java command line options for 'go' MaxPermSize -> MetaspaceSize in java 8
* updating third party wicked good xpath to e33a3876a6d592b824942751d86ba5f2b08a3dc5 Fixes #1040
* Removing use of Windows hooks for taking screenshots in IE.
* Firefox: fixing sendKeys for contentEditable elements, it should append to the existing text.
* Buck version bumps
* Update closure-library to 04a8ceefc6972511e669563d47abeca18b28092c
* Firefox: implementing mouse doubleclick action via nsIDOMWindowUtils
* Add FluentWait.withMessage with string supplier
* Firefox: fixing events generated as a result of click on an element that disappears after the click.
* Firefox: implementing mouse up/down actions via nsIDOMWindowUtils. This makes mouse actions "more native". In particular, if there are overlapping element at the click point, the driver will click the topmost element.
* Safari: stop embedding the extension in the client libs, it should be downloaded and installed manually.
* Deleting a couple of redundant casts
* No need to cast, the variable has required type already
* Deleting redundant logging to console in tests
* HtmlUnit: Ignoring one more test
* Disabling a test if JS is not enabled
* HtmlUnit: Unignoring a magically working test
* HtmlUnit: restoring backward compatibility after changes in getCurrentUrl semantics
* WDBC: restoring backward compatibility after changes in getCurrentUrl semantics
* Deleting native events from firefox driver
* Deleting outdated assumes for unsupported Firefox version
* Resorting tests for moveByOffset action
* Firefox: don't dispatch keypress event if defaultPrevent() of the keydown event is called because KEY_FLAG_PREVENT_DEFAULT has no effect
* Moving IE specific test to IE test suite
* Firefox: throwing proper exception on an attempt to find an element in the deleted frame
* Firefox: changing getCurrentUrl to return top level browsing context address (to conform to the standard)
* Firefox: fixing page source for plain text pages
* Adding information on the reasons to ignore tests
* fix the client and server classpath
* Move the servlet-api package for easier automated updates.
* Renaming the Jetty7AppServer to remove the version number.
* Fix up failing htmlunitdriver test.
* Simulating window.getPosition and setPosition operations
* Simulating switchTo().window by name
* Fixing test to switch back to the original window after opening a new one.
* Implementing standard-compliant window operations
* Implementing standard-compliant getSize, getPosition and getPositionInView
* Deleting marionette tcp connector
* remove unused css transform code from location in view
* use BasicHttpRequest instead of EnclosingRequest
* htmlunit passes the httponly cookie test
* fix maven dependency of htmlunit driver on the support package
* don't replace a platform specified to the add browser method, like the TODO says
* Simulating submit operation for standard compliant drivers
* Making sendKeys more backward compatible (because i18n tests)
* Change buils to builds
* Unignoring marionette tests passed after sendKeys rework
* Fixing getSize operation broken by copy-paste from getLocation
* Reworking sendKeys to send characters one by one, this is standard compliant behavior
* Making switchTo().window more standard compliant
* Making getLocation and getSize standard compliant
* Making timeout setting methods standard compliant
* Fixing "no such alert" error mapping
* Making findElement(s) commands standard compliant (except for link text locators)
* java: fix log string for RemoteTargetLocator#defaultContent
* Update check to see if we are speaking to a W3C remote end point
* specificationLevel is defined in http://w3c.github.io/webdriver/webdriver-spec.html#capabilities
* use exception message. no method overload exists for log.severe
* Upgrade HtmlUnit 2.18
* ReflectionBackendDriverSupplier: two arguments Capabilities
* HtmlUnitMouse: no need to .focus()
* Fix HtmlUnitWebElement.getCssValue
* AMO requires the max version be an actual release version number
* Correcting IE driver build process to create executables runnable on Windows XP Fixes issue #936.
* Improve comments and error message on scrolling_test#testScrollingAccountsForScrollbarWidths.
* Java client side support for launch_app command of chromedriver:
* Add "additionalCommands" support to DriverCommandExecutor.
* Use directExecutor().
* Updating IE driver C++ code to use Visual Studio 2015.
Grid:
* Run grid tests using Buck.
* removing '-debug' command line parameter for grid hub, it isn't used anywhere.
* adding edge icon for grid
v2.47.0
=======
** Java 7 is now requried, but you really should be on 8, since 7 is EOL **
WebDriver:
* Supports native events for Firefox version 31 (immediately previous
ESR). Native event support has been discontinued for versions of
Firefox later than 33. Synthetic events tested on Firefox versions 31
(immediately previous ESR), 38 (immediately previous release and current
ESR), and 39 (current release).
* Beta Alert.AuthenticateUsing api implementation added, beta testing with IE.
* Added TakesScreenshot to WebElement.
* (provided by Microsoft) Added language bindings for Microsoft Edge browser
* Make it possible for users to override how the Lock is obtained with Firefox.
* (provided by Ahmed Ashour) Added implementation of Alert for HtmlUnit driver.
* (provided by Ahmed Ashour) Fixed findElementByXPath for HtmlUnit driver to
work for XML pages.
* (provided by Ahmed Ashour) Fixed HtmlUnit driver to allow for manipulating
elements in SVG documents.
* (provided by Ahmed Ashour) Fixed HtmlUnit driver so that deleteAllCookies
deletes cookies only for the current domain, matching other implementations.
* (provided by Tamás Buka) Created an overload to
ExpectedConditions.frameToBeAvailableAndSwitchToIt support to index and
WebElement so that WebDriverWait can use this mode to switch frames.
* (provided by Joshua Bruning) Allow access to local profiler logs. An
exception may be thrown if the WebDriver server does not recognize profiler
logs. In this case, the user should be able to see the local profiler logs.
* (provided by Sergey Tikhomirov) Changed visibility of isDecoratableList
method of DefaultFieldDecorator to protected for use with custom PageFactory
implementations.
* Froze javascript.enabled property in Firefox profiles
* FIXED #426: (provided by Anand Jayaram) Default the hub port to 4444, if no
port was provided.
* FIXED #638: Disabled HTTP Public Key Pinning (HPKP) when the
webdriver_accept_untrusted_certs capability is set. As of Firefox 39, Firefox
ignores certificate overrides if the domain's certificate is pinned.
* FIXED #644: (provided by Brett Randall) Modified ErrorHandler to tolerate
non-Number lineNumber, and also attempts to safely parse a non-Number Object
if it receives a non-Number. If absent or non-numeric it now continues to
build the StackTraceElement (instead of aborting that frame) and uses the
conventional -1 for lineNumber.
* FIXED #658: Disable reading list info panel in Firefox.
Server:
* Added a guard that prevents starting "IE instead of Opera" (or some other
unwanted browser that obviously does not match the desired capabilities).
Previously if a new session request is forwarded to a node it results in a
driver instance creation in any case. For example, let's suppose a user
starts a node with -browser browserName=opera option, and there is no
operadriver in the classpath. Then the user requests a new remote driver with
browserName=opera. The hub forwards the request to the node, and the node
attempts to find the "best matching" driver provider. As far as opera is not
available, it can start any other browser. Because "best matching" does not
imply matching. The new guard prevents this unwanted behavior.
Grid:
* Added support to grid for Microsoft Edge driver
* (provided by Dima Kovalenko) Sort Grid Proxies in order of least busy to
busiest. This should prevent situation where one node is running multiple
sessions while several nodes are completely idle.
RC:
* Removed start of Firefox with -silent option to prevent crash in Firefox.
IDE:
* FIXED #570: Add ability to record elements that do not have href attributes.
v2.46.0
=======
Important changes in this release:
* Supports native events for Firefox version 31 (immediately previous
ESR). Native event support has been discontinued for versions of
Firefox later than 33. Synthetic events tested on Firefox versions 31
(immediately previous ESR), 37 (immediately previous release), and 38
(current release and current ESR).
* Remove all support from both webdriver and RC for Presto-based
Opera. Blink-based Opera is still supported!
* Added beta Marionette driver (for Firefox OS and recent desktop
releases).
* Fixing critical selenium server error caused by a user registering a
driver class compiled with a higher Java version than the server is
running (eg: server runs with Java 7, but the driver is comopiled to
target Java 8)
* FirefoxDriver: now supported on OpenBSD (added by minusf@gmail.com)
* HtmlUnitDriver: Updated to HtmlUnit 2.17. Requires Java 7 or above to work.
Other notable changes:
* Added ability to clear file input fields for Firefox.
* Fix bug in Safari where Selenium updated the page under test in some
circumstances.
* HtmlUnit: do not disable mouse notifications when js is disabled,
css is also related to this information (only partly implemented in
HtmlUnit at the moment)
* Updated htmlunitdriver to use htmlunit 2.17
* Upgraded commons-exec from 1.1 to 1.3
* Changed capability name from pageLoadingStrategy to pageLoadStrategy
* FIX: Google Code issue #7749: Add Get/Set network connection
commands to JsonHttpCommandHandler to be able to use commands in
selenium grid.
* Allow clients to specify TCP timeouts in the remote webdriver.
* Allow the chrome binary passed in capabilities to have a higher
priority than node configuration.
* ChromeDriver: Added ability to pass whitelisted-ips option to the
chromedriver
* Implement lazy loopback detection. This provides ~10x speed
improvement of selenium server startup.
* Allow loading option descriptions from JSON file instead of
Properties, allowing the server to manage order of options in the
help message
* SafariDriver: In SafariDriver's page script, copy window properties
to goog.global. (provided by juangj@google.com)
* Add a method toList that allows converting CompositeAction to JSON
* FirefoxDriver: Skip the profile cleaning step when launching Firefox
* Implement both integer (legacy) and string (standard) response status
for the JSON wire protocol
* FirefoxDriver: Disable https://wiki.mozilla.org/Advocacy/heartbeat
Firefox 37+ feature in browser sessions started by FirefoxDriver.
* FirefoxDriver: Added getters to FirefoxProfile to allow reading
preset preference values
* PageFactory: Changed default value of how part of @FindBy annotation
from ID to UNSET, but treat them equivalent to ensure backward
compatibility
* PageFactory: Provide ability to use custom annotations. (Provided
by Artem Koshelev)
* Use DaemonExecutor from commons-exec instead of DefaultExecutor.
Fixes Google Code issue 4734. (Provided by Richard Atkins)
* FirefoxDriver and Java language bindings now handle both legacy and
W3C specification dialects of element reference serialization in the
JSON wire protocol.
* FirefoxDriver: Don't force garbage collection in httpd.js for
Firefox when connections are closed
v2.45.0
=======
Important changes in this release:
* Native events in Firefox relied on an API that Mozilla no longer
provides. As such, fall back to synthesized events on recent Firefox
versions.
Other changes:
* When Selenium is unable to interact with an element, such as the
case when an element is missing or disabled, this change will output
exactly how Selenium is attempting to locate the element, such as
the XPath or id of the element. This greatly speeds up
troubleshooting issues, as the exception message clearly states what
element is broken/missing for common problems like an
ElementNotFoundException.
* improve ByCssSelector#toString
* Remove automatic installation of the SafariDriver in Java.
* Complete Selenium Java Server support for Blink based Opera
* Upgrading PhantomJS driver
* Pull HttpClient implementation details out of HttpCommandExecutor.
* Fix issue 8254: Extensions were incorrectly transferred between
Windows client and Linux grid node, because ZipEntry had incorrect
name with '\' as separators.
* Adding capabilities and browser type for Opera Blink, and
configuring tests to run in Opera Blink
* Adding support for Blink-based Opera to Java binding
* Adding Yosemite platform
* Allowing to set an arbitrary platform capability even if it can't be
converted to Platform enum. Non-standard platform values can cause
matching issues on Grid, but they can be usable for third-party Grid
implementations
* Taking XML namespaces into account when searching by XPath. Checked
to work in Firefox. Chrome supports namespaces out of the box. Need
to update IE and Safari drivers to use the updated atom and test
them carefully.
v2.44.0
=======
* Updating Native events to support Firefox 24, 31, 32 and 33
* Update calls to deprecated guava methods.
* Remove the deprecated DatabaseStorage interface. And callers. Note that the browser implementations may still have an implementation of these interfaces, but nothing in the main project implements it so we should be okay.
* Bump the version of guava to 18
* Bringing MarionetteConnection in line with the current marionette state (FF33)
* Add new tests for some wait conditions Also add the ExpectedConditionsTest to the test suite.
* Update FindBy annotations description
* Moving last part of browserlaunchers package from client to server
* Moving Proxies utility class to server
* Moving LauncherUtils to the server
* Moving utility method isScriptFile to the only class where it is needed
* Deleting tests for removed deprecated classes
* Moving more RC stuff to the server
* Moving tests too
* Moving proxy management stuff to the server, it is used in RC browser launchers only
* Using asMap as well as toMap to convert an object to Json
* Using JsonNull.INSTANCE instead of null
* Removing deprecated classes
* Log stacktrace. Adds more info on catch to be put into the log instead of just console. This will help debug issues when one has access to grid hub log but no access to console.
* Remove unused static import of Ignore.Driver.HTMLUNIT.
* Remove obsolete ChromeOptions code.
* trim() HTTP response content because some drivers send back a response containing trailing null bytes, which the GSON parser does not like.
* If JsonParser.parse() fails to parse a string obtained from a reflective call to a toJson() method, assume it is a primitive string.
This is the case for, e.g., FirefoxProfile.toJson(), which returns a base64-encoded zip file. That string likely contains at least one '/', which the Gson parser rejects.
* Fixing SessionId from json converter to better handle the case of null sessionId
* Fix the Eclipse config. The new gson dependency wasn't added. Now is :) Also switched a call in HtmlUnitWebElement to use guava rather than commons-lang since that's already included in the build configs for both Buck and CrazyFun.
* Get the Buck build working again.
* HtmlUnit: add text to the end of input fields. This makes the htmlunit driver work as the other drivers do.
* HtmlUnit: Fix getAttribute for dynamic properties.
* Enable Html5CapabilitiesTest for HtmlUnit
* Fix classpath for running tests in eclipse This allows the htmlunitdriver tests to run in Eclipse.
* Fixing broken CrossDomainRpcLoader
* Implementing autoconverion of platform in Capabilities on write
* Moving from org.json to gson because the license. Fixes issue 7956
* Revert "Bump the version of webbit to 0.4.15"
* Optimizing finding multiple elements by id by using CSS selectors if available. Fixes issue 7682
* Fixing WDBS compatibility with IE5. Fixes issue 7938
* HtmlUnitDriver: Initial code cleanup.
* Eclipse classpath fixes for htmlunit.
* Deflake a test.
v2.43.1
=======
* Fixing socketlock bug with reusing the same profile multiple times
v2.43.0
=======
WebDriver:
* Updating Native events to support Firefox 24, 31 and 32
* Add note on stale element checks and a WebElement represents a DOM element
* Upgrade third party dependency JavaScript-XPath to 0.1.12
* Fix example code: "using(-Chrome)DriverExecutable"
* Make event_firing_test.html pass in Firefox 24 ESR.
* Fix an error propagation bug when a command fails from bad inputs.
* Handle the case where a proxied element from PageFactory causes a FluentWait to timeout.
* Integrating the Microsoft Internet Explorer driver implementation
* Allow subclasses of HttpCommandExecutor to extend it at runtime.
* Handle the case where executeScript returns an HTMLDocument.
* IEDriver crashes in WaitUntilElementFocused() because of null pointer. Fixes issue #7577
* Deprecate the original RC interface in Selenium.
As part of Selenium 3.0, we shall be moving the original RC interface to a
legacy JAR that will be available as a separate download. As the first step
in this process, the original "Selenium" interface is being marked as
deprecated.
* Run FirefoxDriver tests with Buck.
* Bump timeout for tests since a suite is also a test.
* Run htmlunit-driver tests with Buck.
* Run the ignored tests printer with Buck.
* Get org.openqa.selenium.SmallTests building with Buck.
* Working around limitations in subpixel precision event handling.
The bug/limitation where browser supports subpixel precision for elements but not for dispatched events was found in both modern Chrome (http://crbug.com/396380) and Firefox (?) browsers.
(IE doesn't seem to be affected: before and including IE9 - no subpixel for elements and events; from ie10 - subpixel is supported for both elements and events).
This test was lucky so far (mostly?) and didn't hit this issue, until Chrome 37 that enabled subpixel text scaling by default.
This change makes *sure* elements have subpixel coordinates (if only browser supports'em) and then it makes sure this test doesn't fail because of that (while still testing selenium atoms).
While there, I moved asserts from event handlers into the normal test flow so jsunit can properly attribute assertion failures to specific test methods.
* Updating prebuilt libs for windows
* Re-add the rubyzip jar
* updating prebuilts for linux
* Updating to gecko 32
* Log formatter should be able to work with empty keys array. Fixes issue 7357
* Fixing infinite read from socket. Fixes issue 7814
* WDBS: safe check for window.localStorage
* Driver should operate cookies for the current frame, not the topmost one. Fixes issue 7799 in
Firefox
* Actually supporting promised Id for webdriver.WebElement.
* Adding more checks for JS functions removed from IE11. Fixes issue 7803
* Fixing use of deprecated API in httpclient
* Fixing use of deprecated API in guava
* Update Closure library to head and compiler to the latest release
* Implementing ability to use FirefoxDriver on a machine where localhost is not the first alias for
127.0.0.1. Fixes issue 3280
* Handle null and empty paths the same as /
* fixing maven build, adding reference to jetty-rc-repacked-5
* adding pom and info on uploading jetty-repacked-5 to maven central
* Adding checks for JS functions removed from IE11. Fixes issue 7780
* Deleting what appears to be unused deps.
* Add more options to the Builder API (every common, settable capability should be covered).
* Require calling Builder.usingServer(url) to use a remote server. If this is not called, the
builder will attempt to create a client locally, throwing an error if it can't (e.g. for IE).
* Add browser specific constructors to simplify creating a client without the Builder.
Fixes issue 7593
* Updating json-cpp lib and replacing mongoose web server with civetweb.
* Safari is flaky. Reducing timeout to fail faster when we're going to fail.
* Catch driver start-up failures.
* Add explicit API for configuring log prefs rather than forcing users to rely on
magic capability strings.
* Clean up internal Firefox logging API.
* Use LogLevelMapping to convert JSON wire protocol name to Level instance.
* Make the jettyMaxThreads parameter actually be effective
* Fix NullPointerException when File#listFiles() returns null. Fixes issue #1934
* Making WDBS.start command a no-op if it was instantiated with an already started driver. Fixes issue 3993
* Handling possible exception in stringification of window.location. Fixes issue 3908
* Modified IE driver server to more closely follow W3C spec
This commit includes a number of changes designed to bring the IE driver
into closer alignment with the W3C WebDriver specification. It provides
no functional changes to the driver, nor does it change any external-
facing API. The changes are:
* Changed webdriver::Server to examine the response from the newSession
command for the session ID rather than a two-stage process. The
webdriver::Server::DispatchCommand method now calls the
InitializeSession method directly when processing the newSession
command.
* Removed the now-obsolete webdriver::Server::CreateSession method.
* Added a Serialize/Deserialize method pair on the webdriver::Command
class (renaming the Populate method to Deserialize).
* Revamped the serialization of webdriver::Command to use 'name' instead
of 'command' for the command name.
* Added a session ID member to the webdriver::Command object.
* Modified the webdriver::Command object to no longer draw distinction
between parameters passed in as part of the URL substitution and those
passed in as part of the JSON payload in the body.
* Modified webdriver::CommandHandler::ExecuteInternal (and all subclass
implementations to use a single parameters map instead of the dual
URL tokens/JSON payload parameters maps used previously.
* Propagate webdriver_firefox_port preference to FirefoxDriver, was being ignored. Fixes issue 5172
* Adding a new selenium server option -logLongForm to log more details to the console. Fixes issue 6645
* Handling possible IllegalStateException while cleaning orphaned and timed out sessions. Fixes issue 6771
* Setting forwarded content for CommandListener afterCommand handler. Fixes issue 7443
* Fixing the list of extensions to search for an executable on Windows, and logging process startup
errors. Fixes issue 7514
* Setting layout.css.devPixelsPerPx to 1.0 if native events are enabled only. Fixes issue 7445
* BODY element is always shown/displayed.
related section in the W3C spec:
https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html#determining-if-an-element-is-displayed
* Implementing switchToParentFrame support in atoms
* Setting HtmlUnit to emulate FF24 by default
* Updating HtmlUnit to 2.15
* Stop polluting the log with stacktraces. Fixes issue 7460
* Returning less specific platform info from firefox driver. Fixes issue 3354
* Adding driver info into TimeoutException thrown by WebDriverWait. Fixes issue 7429
* Implementing switchToParentFrame command for IE driver
* Adding URL endpoint for switchToParentFrame
v2.42.2
=======
WebDriver:
* errorHandler needs to be instantiated. Fixing NPE with IEDriver Issue #7415
v2.42.1
=======
WebDriver:
* resorting context endpoints, belong with mobile spec
* re-added Context endpoints to java client
* allow custom ErrorHandler for HTTPCommandExecutor
* fixing toJSON of chrome options where equal options become unequal.
v2.42.0
=======
WebDriver:
* updating firefox prebuilts, thanks jleyba for fixing the build!
* Use PRUnichar for Gecko < 29, char16_t otherwise.
* Updating third_party/py/jython.jar to Jython 2.5.3
* Removing unused functions
* Implementing more straightforward way to send keyboard events in synthesized mode. Fixes typing into number inputs and rich text editors (like tinymce)