forked from operasoftware/operaprestodriver
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
1213 lines (722 loc) · 35.1 KB
/
CHANGES
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
v0.11 (2012-03-05)
[API CHANGES]
* Introducing OperaTimeouts.responseTimeout() for customizing the
response timeout interval. (andreastt)
* Removed opera.guess_binary_path capability. (andreastt)
* Recognizing opera.launcher capability. (andreastt)
* Deprecated OperaWebElement.click(int times), click(int x, int y)
and middleClick(). (andreastt)
[NEW FEATURES]
* Using new extension to hob, javagen, for generating Java classes
from Scope protocols. (andreastt)
* Support for clearing private data. (danielb/andreastt)
[ENHANCEMENTS]
* Upgraded to Selenium 2.20. (andreastt)
* Raising response timeout to 60 seconds. (andreastt)
* Improved reliability of implicit waits. (andreastt)
* OperaProfile.toJson() now returns a proper JSON representation of
the profile. (andreastt)
* Now relying more on the data types given by Opera for preferences.
(andreastt)
* Functionality for converting OperaDriver settings to capabilities.
(andreastt)
* Delegated more responsibilities during initialization to
OperaRunnerSettings. (andreastt)
[BUG FIXES]
* OperaArguments.merge() will now return a reference to it self.
(andreastt)
* OperaRunnerSettings.setBinary() now accepts java.io.File as the
default argument. (andreastt)
* If ENABLE_CHECKS is enabled, this is no longer applied to asserting
whether elements are displayed or not. (andreastt)
* Recompiled ecmascript service protocols to facilitate CORE-36517,
fixes SPARTAN-1165. (andreastt)
* Facilitate connecting to a remote host, addresses OPDRV-152.
(andreastt)
* Removed desktop-specific hardcoded response timeout to 30 seconds
when a window is loaded. (andreastt)
* Remove a redundant cast. (hansd)
* AbstractEventHandler turned into an interface, and EventHandler
into an actual abstract class. Fixes inconsistencies. (andreastt)
* Renamed AbstractEventHandler to ScopeEventHandler (implementation)
and removed STP/0 support. (andreastt)
* Unspecified type for field shuttingDown in ScopeServices.
(andreastt)
* Removed temporary fix for CORE-33057. (andreastt)
* We were not respecting implicit waits, removing unused EXEC_SLEEP
workaround. (andreastt)
[TESTS]
* Major refactoring of test setup. (andreastt)
* Introducing annotation FreshDriver for forcing a driver restart.
(andreastt)
* In-process web server for tests (much like Selenium's).
(andreastt)
* Introduced OperaDriverBuilder and various OperaDriverSuppliers
for use in SpartanRunner and for testing. (andreastt)
* Added methods toString() and toList() to OperaIntervals for
debugging purposes. (andreastt)
* Added test for specifying launcher from capabilities. (andreastt)
[OTHER]
* Protocol files no longer have version numbers in filenames,
resolves OPDRV-154. (andreastt)
* Printing warnings when compiling OperaDriver. (hansd)
* Removed old getting started examples, relocated remote example.
(andreastt)
* Various fixes for documentation. (andreastt)
v0.10 (2012-01-24)
[API CHANGES]
* Added short-hand ScopePreference.reset() method for resetting a
single preference. (andreastt)
* OperaDriver.preferences().* now returns a ScopePreference so that
it won't have to be casted. (andreastt)
[ENHANCEMENTS]
* Upgraded WebDriver atoms. (andreastt)
* Upgraded to Selenium 2.17. (andreastt)
* Cleaning VERSION file on build target "clean". (danielb)
[BUG FIXES]
* Handle cyclic references in JavaScript results to avoid stack
overflow. (rjatkins)
* Fix for proxied WebElement not being wrapped in OperaDriver.
(rjatkins)
* setLastModified() check fails on Windows, resolves issue #38.
(andreastt)
* Fix for NullPointerException in DesiredCapabilitiesTest.
(andreastt)
* Fix for SpartanRunner not exiting, resolves SPARTAN-1026.
(danielb)
* Escape quotes in JavaScript parameters. (rjatkins)
* Added OperaProfile.toJson(), avoids StackOverflowException in
BeantoJsonConverter. (dawagner)
* Logging levle is now passed down to launcher on startup.
(andreastt)
[TESTS]
* Converted ignored mouse tests to a low-level OperaMouse test,
MouseTest. (andreastt)
* Added stale element exception tests for navigating between same
page and two different pages. (andreastt)
* Added window switching tests. (andreastt)
* Tests for WebElements being proxied in PageFactory. (rjatkins)
* Check for whether @Ignore annotation is empty, fixes a few failing
Windows tests. (andreastt)
* Removed or refactored tests relying on external resources.
(andreastt)
[OTHER]
* Fix code quotes in README. (stuk)
* Upgraded Guava to 11.0.1. (ajayk)
* Added more IntelliJ run configurations. (andreastt)
* Added Richard Atkins to the AUTHORS file. (andreastt)
* Upgraded launcher dependency to 0.6 (which includes the
command-line arguments -profile and -backend). (andreastt)
v0.9 (2011-01-16)
[API CHANGES]
* Removed deprecated interface OperaDriverSettings. (andreastt)
* Removed deprecated method OperaWebElement.hover(). (andreastt)
* Removed methods OperaWebElement.mouseOver(), mouseOut(),
mouseDown() and mosueUp(). (andreastt)
* Removed deprecated methods OperaWebElement.getValue() and
isVisible(). (andreastt)
* Removed unknown, unused method OperaWebElement.getElementName().
(andreastt)
* Removed method OperaWebElement.rightClick(). (andreastt)
* Removed deprecated methods OperaWebElement.dragAndDropBy() and
dragAndDropOn(). (andreastt)
* Removed deprecated method OperaDriver.getRunner(). (andreastt)
* OperaDriver's constructor now also takes OperaProfile as an
argument. (andreastt)
* OperaRunnerSettings.setProfile() now accepts an OperaProfile
object as argument. (andreastt)
* The capabilities for Opera now accepts an OperaProfile object for
"opera.profile". (andreastt)
* The capabilities for Opera now accepts a Level object for
"opera.logging.level". (andreastt)
* OperaIntervals.ENABLE_DEBUGGER has been moved to
OperaFlags.ENABLE_DEBUGGER. (andreastt)
* Upgraded Selenium dependency to 2.17. (andreastt)
* Removed interface Utils. (andreastt)
* OperaUtils.getProduct() now returns OperaProduct instead of
String. (andreastt)
* Removed OperaDriver.isJavascriptEnabled(). (andreastt)
* Removed methods OperaDriver.key(), keyDown(), keyUp(),
releaseKeys() and type(). (andreastt)
* Added OperaDriver.manage().logs() to support Selenium 2.16.1.
(ajaykv)
[NEW FEATURES]
* New interface OperaProfile for interacting with the profile for
Opera. You can for example modify or set new preferences on
profile before Opera is started:
OperaProfile profile = new OperaProfile(); // fresh profile
profile.preferences().set("User Prefs",
"Ignore Unrequested Popups", false);
WebDriver driver = new OperaDriver(profile);
You can also interact with existing profiles by passing in the
directory to OperaProfile's constructor.
(andreastt)
* New interface OperaPreferences for managing preferences in
preference files (like operaprefs.ini) and during runtime through
Scope.
Calls to preference may be done like this:
driver.preferences().set("User Prefs",
"Ignore Unrequested Popups", false);
OperaScopePreferences replaces OperaDriver.getPref() and
OperaDriver.setPref() which are now deprecated.
(andreastt)
[ENHANCEMENTS]
* Reduced much code duplication. (andreastt)
* Default product for OperaRunnerSettings is now DESKTOP.
(andreastt)
* Upgraded WebDriver atoms. (andreastt)
* Upgraded OperaWebElement.click() to use new atoms for selecting an
OPTION element. (andreastt)
* Check for whether launcher exists immediately. (andreastt)
* Upgraded operalaunchers to 0.5. Fixes issue with OperaDriver
through Maven not being able to find launchers. (andreastt)
[BUG FIXES]
* Asserting if element is stale on OperaWebElement.getText(),
getLocation(), getTagName() and clear(). (andreastt)
* If a page load times out we now return control of the browser _in
all_ situations. (andreastt)
* Reverted check for setLastModified on newly copied launcher as it
seems to be failing on Windows. (andreastt)
* OperaLauncherRunner.isOperaRunning() no longer throws exception if
launcher has shut down, but returns false instead. (andreastt)
* Object IDs are being garbage collected on each new page load, no
need to store and verify URL when checking for stale elements.
(andreastt)
* OperaLauncherBinary is now using Platform.is() (from Selenium) for
platform comparison. Will output nicer warning when failing on
Windows without VS C++ 2008 redistributable package. (andreastt)
* Fixed issue with SocketException for double shutdown call in
OperaLauncherRunnerProtocol, fixes tests for Windows. (andreastt)
* Getting colours with non-RGB values (such as "transparent") now
works. Resolves issue #49. (andreastt)
* OperaDriver.close() should quit browser if it closes the last
window, resolves issue #48. (andreastt)
[TESTS]
* Added many new test run configurations for IntelliJ. (andreastt)
* Fixed NullPointerException in the case something went wrong during
initialization of OperaDriver in OperaDriverTestCase. (andreastt)
* Added tests for OperaStrings. (ajayk)
* Tests for circumstances where StaleElementReferenceException
should be thrown. (andreastt)
* Refactored many tests so that they pass on Windows, where JUnit
test order is not guaranteed. (andreastt)
* Tests for handing back control to user after reaching
PAGE_LOAD_TIMEOUT. (andreastt)
[OTHER]
* Documented many methods. (andreastt)
* Updated Eclipse configuration. (ajayk)
* Updated IntelliJ configuration for version 11. (andreastt)
* Compile target “compile_tests” now requires “jar”. (andreastt)
* Added more examples to the README. (andreastt)
* Removed old interactions implementation in
com.opera.core.systems.interaction since it was never used.
(andreastt)
v0.8.1 2011-11-24
[API CHANGES]
* OperaDriver.get() and OperaNavigation().to() now catches
ResponseNotReceivedException so that when a page load times out on
very slow-loading pages, the control of the browser instance to the
user. (andreastt)
* Added method pageLoadTimeout() to OperaTimeouts which allows you to
control the default page load timeout, that is the timeout for when
control of the browser should be handed back to the user. Example:
driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
(andreastt)
[NEW FEATURES]
* Output from Opera and the launcher is now forwarded to the
appropriate logging level in OperaDriver. (andreastt, danielb)
[ENHANCEMENTS]
* Upgraded Selenium dependency to 2.13.0. (andreastt)
* Upgraded WebDriver atoms to match Selenium 2.13.0. (andreastt)
* Refactored heuristic for figuring out a sensible logging level
between OperaDriver and launcher. (andreastt)
* Refactored OperaPaths.operaPath() to look for Opera Next binaries on
all platforms. Resolves OPDRV-104. (andreastt)
[BUG FIXES]
* Ensuring that the launcher is executable on each run. (andreastt)
* Fixed bug with synchronized locks ought to be on fields classified
as final in WaitState. (andreastt)
* OperaArguments does not parse OPERA_ARGS, so calling
OperaCoreArguments on startup instead. Fixes bug with OPERA_ARGS
not being parsed. Addresses OPDRV-108. (andreastt)
* Parsing a single argument failed due to a bug in regex, corrected.
Addresses OPDRV-108. (andreastt)
* Removed superflous call to isPathValid() in OperaPaths when checking
whether a specified/set path is invalid. (andreastt)
* Arguments added in OperaCoreArgument's constructor were not merged
if OperaRunner received an OperaRunnerSettings object with the
arguments field set. (andreastt)
* Actions sent to OperaDriver.operaAction() are now converted to lower
case in OperaExec. (andreastt)
[TESTS]
* Removed superflous code in OperaLauncherRunnerTest, and made
assertions static. (andreastt)
* Added deprecated OperaDriverSettings tests to a separate file.
(andreastt)
* Added test for single argument parsing to OperaArgumentsTest.
(andreastt)
* Added new run configuration for OperaLauncherRunnerTest and
OperaRunnerTest. (andreastt)
* Added tsts for OperaLauncherRunner.toLauncherLoggingLevel().
(andreastt)
* The "File Types Section Info" section does not exist on core-tv,
using "Disk Cache" instead for PrefsTest, resolves about five
failing tests on this configuration. (andreastt)
* Moved context menu test to be run last in ElementsTest because it's
known to cause problems for consecutive tests. (andreastt)
* OperaRunnerTest now uses a mocking OperaRunner instance,
TestOperaRunner, which exposes the settings field through a getter.
(andreastt)
[OTHER]
* Fixed classpath issues with previous release. (ajayk)
* Added Apache Commons Exec 1.1 as dependency as
org.openqa.selenium.os.CommandLine now depends on it. (andreastt)
* Explanation for IllegalArgumentException for
OperaExec.mouseAction(), helps WTR-362. (andreastt)
v0.8 2011-11-17
[API CHANGES]
* OperaDriver now uses temporary profile and random port by default.
This breaks backwards-compatibility with Opera < 11.60. Please set
capabilities opera.profile to "" (empty string) and opera.port to -1
for it to not use a temporary profile and the default port (7001).
(stuartk)
* Updated Selenium dependency to 2.12.0. (andreastt)
* Throwing UnsupportedCommandException rather than a
WebDriverException in OperaExec, so that it can be recovered.
(andreastt)
* Throwing UnsupportedOperationException for Options.ime().
(andreastt)
* Added Options.window() as a beta feature. Currently not
implemented, and will throw UnsupportedOperationException.
(andreastt)
* OperaRunnerSettings.setProduct() now accepts an OperaProduct, and
not a String anymore. (andreastt)
[NEW FEATURES]
* EcmascriptService is now used by default in OperaDriver, instead of
EcmaScriptDebugger. This means any injected JavaScript now
potentially goes through JIT, enabling the JIT compiler inside the
browser. (stuartk)
* Added "compile_protos" target to Ant build file for compiling proto
files to Java classes. (stuartk)
* Added support for frame switching. (stuartk)
* Introducing OperaArguments (with accompanying OperaArgument,
OperaCoreArgument and OperaDesktopArgument) which defines a joint
interface for interacting with arguments to various kinds of Opera
products. (andreastt)
* OperaProduct keeps a list of all Opera products. (andreastt)
[ENHANCEMENTS]
* Update EcmascriptService to be more similar to EcmaScriptDebugger.
(stuartk)
* Abstracted RuntimeNode from EcmaScriptDebugger into its own class so
that it can be reused in EcmascriptService. (stuartk)
* Move methods common to EcmaScriptDebugger and EcmascriptService to a
new class, AbstractEcmascriptService.
* Replacing Apache Commons IO library calls with Guava (Simon Stewart,
andreastt)
* Upgraded from using OperaDriverSettings to using DesiredCapabilities
in OperaDesktopDriver. (andreastt)
* The launchers have now been moved to a separate JAR,
operalaunchers-*.jar, effectively removing the need to traverse the
repo when running from source in SpartanRunner. (andreastt)
* OperaLauncherRunner made separate from OperaRunner. OperaRunner now
implements a Java native way of launching Opera. (andreastt)
* Logging all ES implementations used to FINE rather than INFO.
(andreastt)
* Which Opera product is used is fetched after connecting and stored
in the capability "opera.product". (andreastt)
[BUG FIXES]
* OperaWebElement.getCssValue() now returns HEX values for
colour-related variables. (andreastt)
* We were setting OperaIntervals#WAIT_FOR_ELEMENT to 0 every time when
looking for an element, which overrode the implicit wait time
specified through driver.manage().timeouts(). (andreastt)
* Use the passed idle argument, not forcing idle to be true when
calling setUseOperaIdle(). (danielb)
* Since -pd is ignored by core builds, we must for some reason send
-autotestmode last so that it doesn't consider the temporary profile
to be the starting URL. (andreastt)
* Fix for making sure we create runtimes when we try to find them,
instead of when we try to update the runtimes in EcmascriptService.
(stuartk)
* getWindowHandles() now gives names to windows without names.
(stuartk)
* Fix for NullPointerException if both window name and title are null
in OperaDriver.window(). (stuartk)
* Fix for a better way to verify whether EcmascriptService is
available. (stuartk)
* Catch invalid runtime exception for EcmascriptService. (stuartk)
* Now logging which status we receive from the launcher. (andreastt)
* Doing all port guessing in OperaRunnerSettings since it's specific
to launching Opera. (andreastt)
* Making sure Capabilities and OperaRunnerSettings are synchronized on
launch. (andreastt)
* Logging for when launcher is copied was misplaced, now corrected to
reflect reality. (andreastt)
[TESTS]
* Added tests for VersionUtils comparison. (dturkoglu)
* Removed irrelevant tests, corrected misleading pass conditions.
(andreastt, stuartk)
* Logging level when running tests is now set to FINE. (stuartK)
* Assert.assert* calls have now been replaced by static imports for
JUnit tests. (ajay, andreastt)
* Added tests for all new code added in this version. (andreastt)
* Added method for setting the launcher manually to
OperaLauncherRunnerSettings. This should never be used for other
purposes than testing. (andreastt)
* Added new @Ignore annotation which lets you ignore a test based on
product and/or platform. (andreastt)
* Corrected ignores for core- and desktop-specific tests. (andreastt)
* Reworked tests to use OperaDriverTestCase as a base. (andreastt)
* Added tests for OperaColor. (andreastt)
[OTHER]
* Added descriptions for all packages. (stuartk)
* A lot of documentation added to various places. (stuartk,
andreastt)
* Fixes for documentation in OperaDesktopDriver. (andreastt)
* Added IntelliJ run configurations for various tests. (andreastt)
* Removed reference to pkg/ as a library in IntelliJ configuration.
(andreastt)
* Examples have been cleaned up. (andreastt)
v0.7.3 2011-09-19
[API CHANGES]
* Update Selenium JAR to 2.6.0. (Ajay Kemparaj)
* Update the protobuf library from 2.3.0 to 2.4.1 and regenerating all
Proto files. (stuartk)
* If OPERA_PATH or OPERA_LAUNCHER are set to invalid paths, we will now fail
instead of attempting to recover by guessing Opera's path. (andreastt)
[NEW FEATURES]
* Add support for OperaDriver.switchTo().frame(WebElement). (stuartk)
[BUG FIXES]
* Fix bug preventing switching to frames beneath the current one. (stuartk)
* Fix for switching to sub-sub-frames. (stuartk)
* Fix getAttribute("value") on option element. (takahah)
[TESTS]
* Ignore failing tests. (stuartk)
[OTHER]
* Major refactoring of OperaPaths. (andreastt)
* Better exception if failing to start the launcher on Windows, explaining
Visual C++ dependency. (andreastt)
* Add script to compile Opera .proto files. (stuartk)
* Add .proto file for Opera launcher. (stuartk)
* Lowering error logging level for key errors. (andreastt)
* Update Selenium atoms to r13805. (stuartk)
* Add documentation for some internal methods. (stuartk)
* If running OperaDriver from the source directory it will now find the
launcher in the launcher/ directory. (andreastt)
* Update OperaWebElement.saveScreenshot() to use FileChannels. (Ajay Kemparaj)
v0.7.2 2011-09-08
[API CHANGES]
* DefaultDriverFactory in Selenium expects a Capabilities type constructor
argument rather than DesiredCapabilities. OperaDriver now uses Capabilities
instead to match the other WebDriver implementations. This fixes various
problems related to remote driving. (andreastt)
* The capability "opera.binary_profile" has been renamed to "opera.product".
(andreastt)
[BUG FIXES]
* Fix OperaWebElement.getLocation for SVG documents. (stuartk)
* -autotestmode, -debugproxy and -pd arguments are now sent to Opera before
unwrapping the arbitrary list of arguments sent by user. (andreastt)
* Sanitizing capabilities sent across the wire, as Ruby will sent us Long's
for Integer's which are not easily converted in Java. (andreastt)
[TESTS]
* Correct checking for Windows platform in tests. (stuartk)
* Updated various tests. (andreastt)
[OTHER]
* OperaWebElement now has its own logger. (stuartk)
* Java code refactoring. (ajayk)
v0.7.1 2011-09-06
[API CHANGES]
* Remove deprecated method OperaDriver.stop(). (andreastt)
* Remove deprecated method OperaDriver.closeAll(). (andreastt)
* Remove OperaDriver.convertByToAtom() as the WebDriver atoms now support
getting locators by nice wire strings. (andreastt)
* Remove OperaDriver.getProduct(), .getOS(), .getBinaryPath(),
.getCoreVersion(), .getUserAgent() and .getPID() and replace with
OperaDriver.utils().* (andreastt)
[BUG FIXES]
* Make OperaWebElement.sendKeys enter text at the end when an input has
default text. (stuartk)
* Clear Should only clear editable and enabled elements. (ajayk)
* Call services.shutdown(), as .quit() will also shut down Opera even if
'opera.no_quit' is set to true. (andreastt)
[NEW FEATURES]
* Add backwards-compat support for Window Manager 2.0 (for Opera Mobile).
(stuartk)
[OTHER]
* Cleaning up logging in OperaLauncherRunner, OperaLauncherBinary,
OperaLauncherProtocol, StpConnection, ScopeServices. (andreastt)
* Documenation and formatting fixes. (andreastt)
* Updated the atoms. (andreastt)
v0.7 2011-09-02
[API CHANGES]
* Support the use of DesiredCapabilities, instead of OperaDriverSettings.
OperaDriverSettings is still supported for backward compatibility, but
will be removed in the next point version (0.8). (stuartk)
* Update Selenium jar to 2.5.0.
* Remove OperaDriver.mouseEvent() method. Use the advanced interaction API
instead. Update OperaExec to allow several mouse keys to be pressed at once.
(andreastt)
* Updated SocketMonitor to not be a singleton, so that connections to
multiple instances of Opera can be maintained. (stuartk)
* Renamed OperaPaths.getOperaLauncherPath() to extractLauncher(path) to better match
what the method is actually doing. (andreastt)
* Remove OperaDriver.shutdown(). (stuartk)
[NEW FEATURES]
* Support DesiredCapabilities. Capabilities include "opera.binary" and
"opera.arguments" amongst others. See the top of the OperaDriver class
for all of them. (stuartk)
* Support the "personal directory", `-pd`, flag with the "opera.profile"
capability. Currently only available on Linux Opera builds.
* Add "opera.port" capability to set the port that Opera communicates with
driver on. Allows multiple instances of Opera to be run at once. Requires
the `-debugproxy` flag, which is not yet available in current versions
of Opera. (stuartk)
* Add capability to set the logging level and file with "opera.logging.level"
and "opera.logging.file". (andreastt)
* Updated Linux launcher to support the `-profile` argument, to specify
which build profile we are using (Note: this ISN'T the Opera user profile).
(Iaroslav Tymchenko)
* Display the command used to start Opera when it exits immediately (usually
due to bad command line arguments). (stuartk)
[BUG FIXES]
* Correct LEFT_CONTROL enum in OperaKeys to make code such as
`action.sendKeys(Keys.CONTROL + "c")` work. (stuartk)
* Escape double quotes instead of single quotes in findElementsBy* methods.
Fixes the problems with pre-escaped strings sent from selenium-webdriver.
(andreastt)
* Fix for bug DSK-344905; Opera should not quit after testrun with noquit
option (Karianne Ekern)
* Wait between two double clicks so that Opera doesn't interpret it as as a
quadruple-click. (andreastt)
* Throw InvalidSelectorException when selectors are invalid. (stuartk)
* Use OpenURL command in new Window Manager service. Fixes case where loading
a page in a new window would cause a ResponseNotReceivedException. (stuartk)
* Don't timeout when a window is closed by Javascript. (stuartk)
* Check services isn't null before shutting it down. (stuartk)
[TESTS]
* Add tests for modifier keys. (stuartk)
* Ignore some launcher tests on Windows. (stuartk)
* Skip selftest tests when service isn't supported. (stuartk)
* Add tests for Profile and Port capabilities. (stuartk)
[OTHER]
* Update build.xml to target Java 5/1.5. (stuartk)
* Compile tests to the bin/ directory, rather than the tests/ directory.
(andreastt)
* Reduce the logging level from FINE to FINER or FINEST for noisy log
messages. (stuartk)
* Update Window Manager service from 2.0 to 2.1. (stuartk)
v0.6.1 2011-08-29
[API CHANGES]
* Remove OperaDriver.mouseEvent(). (andreastt)
* Switch order and type of arguments to OperaExec.mouseAction(). (andreastt)
* Update Selenium jar to r13628, to include double-click fix in r13592.
(andreastt)
[BUG FIXES]
* Wait in between sending double-click events so that Opera does not think
that it is a quadruple-click. (andreastt)
[TESTS]
* Fix tests to not use OperaDriver.mouseEvent(). (andreastt)
v0.6 2011-08-03
[API CHANGES]
* Add complete support for the Advanced User Interactions API:
<URI:http://code.google.com/p/selenium/wiki/AdvancedUserInteractions>
* OperaWebElement.getLocation() now returns the location in the DOM, rather
than in the viewport. To get viewport location use
`getCoordinates().getLocationInViewPort()`. (andreastt, stuartk)
* Use Selenium atoms (see below).
* Update Selenium jar to 2.3.0.
[NEW FEATURES]
* Added ability to navigate menus in Opera Desktop. (Karianne Ekern,
Adam Minchinton)
* Add selftest service. (Arne Skjærholt)
* Use atoms from the Selenium project instead of our own custom JS for:
- Finding elements from OperaDriver and OperaWebElement
- Getting attributes, style, location and size of OperaWebElement
- Getting displayed, enabled and selected state of OperaWebElement
- Submitting and toggling OperaWebElement
- Getting the text of OperaWebElement
(stuartk)
* If available show Ecmascript error message in the exception. (stuartk)
* Correctly return WebElements when they are in another JS object, such as
an array. (stuartk)
[BUG FIXES]
* OperaDriver.navigate().frame(String) now switches to frames with "."s in
rather than sub-frames. (stuartk)
[TESTS]
* Add tests for selftest. (Arne Skjærholt)
* Add test for finding sub-elements on a OperaWebElement. (stuartk)
* Add test for executing Javascript returning an array of elements. (stuartk)
[OTHER]
* Add UMS protobuf file. Regenerate the Java code (no effective changes).
(stuartk)
* Move OperaMouse and OperaKeyboard into separate classes. (andreastt)
* Update pom.xml to contain all needed info. (stuartk)
v0.5.2 2011-07-01
[BUG FIXES]
* Escape quotes for strings passed to find*By* methods on OperaWebElement
(andreastt)
* Fix for click()ing/toggling multiple-select <option> elements (stuartk)
v0.5.1 2011-06-27
[BUG FIXES]
* Core Scope service no longer required, to support earlier Opera versions.
(stuartk)
* Shutdown Scope services in alternate way to support earlier Opera versions.
(stuartk)
v0.5 2011-06-26
[KNOWN ISSUES]
* Requires Administrator privileges on Windows Vista and 7 when Opera is
installed in the default location (Program Files). See README.txt for
workarounds.
* getScreenshotAs() only returns image data of the current viewport, other
parts of the image will be black.
[API CHANGES]
* Add getOS(), getProduct(), getBinaryPath(), getUserAgent(), getPID() to
OperaDriver. (andreastt)
* Implement TakesScreenshot. (stuartk)
* Extend RemoteWebDriver. (stuartk)
* Implement HasDevices (Advanced interaction API). Not fully tested, use
with caution! (stuartk)
* Add listAllPrefs() method on OperaDriver. (stuartk)
* Change listPrefs() to return a map of preference name to Pref object,
instead of a list of Pref objects.
* Update to selenium-java-2.0rc3
[NEW FEATURES]
* Add ability to get meta-information about Opera when using Opera 11.50 or
greater (see [API CHANGES]). (andreastt)
* Selenium APIs implemented: RemoteWebDriver, TakesScreenshot, HasDevices
(stuartk)
* Added maven/pom.xml. (michael tamm)
[ENHANCEMENTS]
* Forward crash status along with the screenshot reply (danielb)
* Capture more logging (danielb)
* Add RemoteWebDriver example. (stuartk)
[BUG FIXES]
* Fix click() method in OperaWebElement for OPTION elements. (stuartk)
* Escape quotes for strings passed to find*By* methods. (stuartk, andreastt)
[TESTS]
* Ignore failing screenshot test. (stuartk)
* Add test for quote escaping. (andreastt)
* Added tests for getting preferences. (andreastt)
[OTHER]
* Rename released jar from webdriver-opera-${version}.jar to
operadriver-${version}.jar. (stuartk)