Hello community,

here is the log from the commit of package perl-Selenium-Remote-Driver for 
openSUSE:Factory checked in at 2018-01-30 15:44:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Selenium-Remote-Driver (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Selenium-Remote-Driver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Selenium-Remote-Driver"

Tue Jan 30 15:44:30 2018 rev:7 rq:570839 version:1.23

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Selenium-Remote-Driver/perl-Selenium-Remote-Driver.changes
  2018-01-24 15:29:42.952574887 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-Selenium-Remote-Driver.new/perl-Selenium-Remote-Driver.changes
     2018-01-30 15:44:37.853968460 +0100
@@ -1,0 +2,22 @@
+Tue Jan 30 05:59:42 UTC 2018 - [email protected]
+
+- updated to 1.23
+   see /usr/share/doc/packages/perl-Selenium-Remote-Driver/Changes
+
+  1.23   01-29-2018 TEODESIAN
+          [BUG FIXES]
+          - Fix issue on legacy chrome/driver with get/set window pos by 
forcing fallback to JSONWire methods.
+
+-------------------------------------------------------------------
+Mon Jan 29 20:18:27 UTC 2018 - [email protected]
+
+- updated to 1.22
+   see /usr/share/doc/packages/perl-Selenium-Remote-Driver/Changes
+
+  1.22   01-25-2018 TEODESIAN
+          [BUG FIXES]
+          - Fix issue where is_enabled() polyfill on WD3 servers was checking 
the wrong attribute.
+          - Fix issue where Firefox/Chrome capabilities were not correctly 
passed
+          - Make some JS polyfill failures non-fatal
+
+-------------------------------------------------------------------

Old:
----
  Selenium-Remote-Driver-1.21.tar.gz

New:
----
  Selenium-Remote-Driver-1.23.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Selenium-Remote-Driver.spec ++++++
--- /var/tmp/diff_new_pack.ftsTGP/_old  2018-01-30 15:44:38.725927753 +0100
+++ /var/tmp/diff_new_pack.ftsTGP/_new  2018-01-30 15:44:38.729927567 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Selenium-Remote-Driver
-Version:        1.21
+Version:        1.23
 Release:        0
 %define cpan_name Selenium-Remote-Driver
 Summary:        Perl Client for Selenium Remote Driver

++++++ Selenium-Remote-Driver-1.21.tar.gz -> Selenium-Remote-Driver-1.23.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/Changes 
new/Selenium-Remote-Driver-1.23/Changes
--- old/Selenium-Remote-Driver-1.21/Changes     2018-01-20 03:21:00.000000000 
+0100
+++ new/Selenium-Remote-Driver-1.23/Changes     2018-01-30 02:47:10.000000000 
+0100
@@ -1,5 +1,15 @@
 Revision history for Selenium-Remote-Driver
 
+1.23   01-29-2018 TEODESIAN
+        [BUG FIXES]
+        - Fix issue on legacy chrome/driver with get/set window pos by forcing 
fallback to JSONWire methods.
+
+1.22   01-25-2018 TEODESIAN
+        [BUG FIXES]
+        - Fix issue where is_enabled() polyfill on WD3 servers was checking 
the wrong attribute.
+        - Fix issue where Firefox/Chrome capabilities were not correctly passed
+        - Make some JS polyfill failures non-fatal
+
 1.21   01-19-2018 TEODESIAN
         [NEW MAINTAINER]
         - George S. Baugh (@teodesian on github, TEODESIAN on CPAN) is now the 
maintainer.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/META.json 
new/Selenium-Remote-Driver-1.23/META.json
--- old/Selenium-Remote-Driver-1.21/META.json   2018-01-20 03:21:00.000000000 
+0100
+++ new/Selenium-Remote-Driver-1.23/META.json   2018-01-30 02:47:10.000000000 
+0100
@@ -107,123 +107,123 @@
    "provides" : {
       "Selenium::ActionChains" : {
          "file" : "lib/Selenium/ActionChains.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::CanStartBinary" : {
          "file" : "lib/Selenium/CanStartBinary.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::CanStartBinary::FindBinary" : {
          "file" : "lib/Selenium/CanStartBinary/FindBinary.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::CanStartBinary::ProbePort" : {
          "file" : "lib/Selenium/CanStartBinary/ProbePort.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Chrome" : {
          "file" : "lib/Selenium/Chrome.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Firefox" : {
          "file" : "lib/Selenium/Firefox.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Firefox::Binary" : {
          "file" : "lib/Selenium/Firefox/Binary.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Firefox::Profile" : {
          "file" : "lib/Selenium/Firefox/Profile.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::InternetExplorer" : {
          "file" : "lib/Selenium/InternetExplorer.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::PhantomJS" : {
          "file" : "lib/Selenium/PhantomJS.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Commands" : {
          "file" : "lib/Selenium/Remote/Commands.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Driver" : {
          "file" : "lib/Selenium/Remote/Driver.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Driver::CanSetWebdriverContext" : {
          "file" : "lib/Selenium/Remote/Driver/CanSetWebdriverContext.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Driver::Firefox::Profile" : {
          "file" : "lib/Selenium/Remote/Driver/Firefox/Profile.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::ErrorHandler" : {
          "file" : "lib/Selenium/Remote/ErrorHandler.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Finders" : {
          "file" : "lib/Selenium/Remote/Finders.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Mock::Commands" : {
          "file" : "lib/Selenium/Remote/Mock/Commands.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Mock::RemoteConnection" : {
          "file" : "lib/Selenium/Remote/Mock/RemoteConnection.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::RemoteConnection" : {
          "file" : "lib/Selenium/Remote/RemoteConnection.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::Spec" : {
          "file" : "lib/Selenium/Remote/Spec.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::WDKeys" : {
          "file" : "lib/Selenium/Remote/WDKeys.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Remote::WebElement" : {
          "file" : "lib/Selenium/Remote/WebElement.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Selenium::Waiter" : {
          "file" : "lib/Selenium/Waiter.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Test::Selenium::Chrome" : {
          "file" : "lib/Test/Selenium/Chrome.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Test::Selenium::Firefox" : {
          "file" : "lib/Test/Selenium/Firefox.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Test::Selenium::InternetExplorer" : {
          "file" : "lib/Test/Selenium/InternetExplorer.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Test::Selenium::PhantomJS" : {
          "file" : "lib/Test/Selenium/PhantomJS.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Test::Selenium::Remote::Driver" : {
          "file" : "lib/Test/Selenium/Remote/Driver.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Test::Selenium::Remote::Role::DoesTesting" : {
          "file" : "lib/Test/Selenium/Remote/Role/DoesTesting.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       },
       "Test::Selenium::Remote::WebElement" : {
          "file" : "lib/Test/Selenium/Remote/WebElement.pm",
-         "version" : "1.21"
+         "version" : "1.23"
       }
    },
    "release_status" : "stable",
@@ -238,7 +238,7 @@
          "web" : "https://github.com/teodesian/Selenium-Remote-Driver";
       }
    },
-   "version" : "1.21",
+   "version" : "1.23",
    "x_contributors" : [
       "Allen Lew <[email protected]>",
       "A.MacLeay <[email protected]>",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/META.yml 
new/Selenium-Remote-Driver-1.23/META.yml
--- old/Selenium-Remote-Driver-1.21/META.yml    2018-01-20 03:21:00.000000000 
+0100
+++ new/Selenium-Remote-Driver-1.23/META.yml    2018-01-30 02:47:10.000000000 
+0100
@@ -33,94 +33,94 @@
 provides:
   Selenium::ActionChains:
     file: lib/Selenium/ActionChains.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::CanStartBinary:
     file: lib/Selenium/CanStartBinary.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::CanStartBinary::FindBinary:
     file: lib/Selenium/CanStartBinary/FindBinary.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::CanStartBinary::ProbePort:
     file: lib/Selenium/CanStartBinary/ProbePort.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Chrome:
     file: lib/Selenium/Chrome.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Firefox:
     file: lib/Selenium/Firefox.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Firefox::Binary:
     file: lib/Selenium/Firefox/Binary.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Firefox::Profile:
     file: lib/Selenium/Firefox/Profile.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::InternetExplorer:
     file: lib/Selenium/InternetExplorer.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::PhantomJS:
     file: lib/Selenium/PhantomJS.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Commands:
     file: lib/Selenium/Remote/Commands.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Driver:
     file: lib/Selenium/Remote/Driver.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Driver::CanSetWebdriverContext:
     file: lib/Selenium/Remote/Driver/CanSetWebdriverContext.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Driver::Firefox::Profile:
     file: lib/Selenium/Remote/Driver/Firefox/Profile.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::ErrorHandler:
     file: lib/Selenium/Remote/ErrorHandler.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Finders:
     file: lib/Selenium/Remote/Finders.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Mock::Commands:
     file: lib/Selenium/Remote/Mock/Commands.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Mock::RemoteConnection:
     file: lib/Selenium/Remote/Mock/RemoteConnection.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::RemoteConnection:
     file: lib/Selenium/Remote/RemoteConnection.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::Spec:
     file: lib/Selenium/Remote/Spec.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::WDKeys:
     file: lib/Selenium/Remote/WDKeys.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Remote::WebElement:
     file: lib/Selenium/Remote/WebElement.pm
-    version: '1.21'
+    version: '1.23'
   Selenium::Waiter:
     file: lib/Selenium/Waiter.pm
-    version: '1.21'
+    version: '1.23'
   Test::Selenium::Chrome:
     file: lib/Test/Selenium/Chrome.pm
-    version: '1.21'
+    version: '1.23'
   Test::Selenium::Firefox:
     file: lib/Test/Selenium/Firefox.pm
-    version: '1.21'
+    version: '1.23'
   Test::Selenium::InternetExplorer:
     file: lib/Test/Selenium/InternetExplorer.pm
-    version: '1.21'
+    version: '1.23'
   Test::Selenium::PhantomJS:
     file: lib/Test/Selenium/PhantomJS.pm
-    version: '1.21'
+    version: '1.23'
   Test::Selenium::Remote::Driver:
     file: lib/Test/Selenium/Remote/Driver.pm
-    version: '1.21'
+    version: '1.23'
   Test::Selenium::Remote::Role::DoesTesting:
     file: lib/Test/Selenium/Remote/Role/DoesTesting.pm
-    version: '1.21'
+    version: '1.23'
   Test::Selenium::Remote::WebElement:
     file: lib/Test/Selenium/Remote/WebElement.pm
-    version: '1.21'
+    version: '1.23'
 requires:
   Archive::Zip: '0'
   Carp: '0'
@@ -164,7 +164,7 @@
   bugtracker: https://github.com/teodesian/Selenium-Remote-Driver/issues
   homepage: https://github.com/teodesian/Selenium-Remote-Driver
   repository: https://github.com/teodesian/Selenium-Remote-Driver.git
-version: '1.21'
+version: '1.23'
 x_contributors:
   - 'Allen Lew <[email protected]>'
   - 'A.MacLeay <[email protected]>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/Makefile.PL 
new/Selenium-Remote-Driver-1.23/Makefile.PL
--- old/Selenium-Remote-Driver-1.21/Makefile.PL 2018-01-20 03:21:00.000000000 
+0100
+++ new/Selenium-Remote-Driver-1.23/Makefile.PL 2018-01-30 02:47:10.000000000 
+0100
@@ -70,7 +70,7 @@
     "Test::Warn" => 0,
     "lib" => 0
   },
-  "VERSION" => "1.21",
+  "VERSION" => "1.23",
   "test" => {
     "TESTS" => "t/*.t"
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/README 
new/Selenium-Remote-Driver-1.23/README
--- old/Selenium-Remote-Driver-1.21/README      2018-01-20 03:21:00.000000000 
+0100
+++ new/Selenium-Remote-Driver-1.23/README      2018-01-30 02:47:10.000000000 
+0100
@@ -1,7 +1,7 @@
 
 
 This archive contains the distribution Selenium-Remote-Driver,
-version 1.21:
+version 1.23:
 
   Perl Client for Selenium Remote Driver
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/at/sanity-chrome.test 
new/Selenium-Remote-Driver-1.23/at/sanity-chrome.test
--- old/Selenium-Remote-Driver-1.21/at/sanity-chrome.test       2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/at/sanity-chrome.test       2018-01-30 
02:47:10.000000000 +0100
@@ -19,6 +19,9 @@
     port => 4444,
     browser_name => 'chrome',
     accept_ssl_certs => 1,
+    extra_capabilities => {
+        args => ['start-maximized'],
+    },
 );
 isa_ok($driver,'Selenium::Remote::Driver',"Can get new S::R::D with 
WebDriver3");
 
@@ -134,7 +137,7 @@
 ok($driver->switch_to_frame(),"can switch to parent frame (WD3 only)");
 
 ok($driver->set_window_position(1,1),"can set window position (WD3)");
-ok($driver->set_window_size(200,200),"can set window size (WD3)");
+ok($driver->set_window_size(640,480),"can set window size (WD3)");
 
 ok($driver->maximize_window(),"can maximize window (WD3)");
 SKIP: {
@@ -204,7 +207,10 @@
 is( exception { $l2->get_element_location_in_view() }, undef, 
"get_element_location_in_view available in gegl krom");
 
 is($driver->find_element('hidon','id')->is_displayed(),0,"is_displayed returns 
false for type=hidden elements");
-is($driver->find_element('no-see-em','id')->is_displayed(),0,"is_displayed 
returns false for display=none");
+my $gone = $driver->find_element('no-see-em','id');
+is($gone->is_displayed(),0,"is_displayed returns false for display=none");
+is($gone->is_enabled(),1,"is_enabled returns true for non-input elements");
+
 is($driver->find_element('h1','tag_name')->get_text(),'Howdy Howdy Howdy', 
"get_text works (WD3)");
 
 $driver->find_element('clickme','id')->click();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/at/sanity-edge.test 
new/Selenium-Remote-Driver-1.23/at/sanity-edge.test
--- old/Selenium-Remote-Driver-1.21/at/sanity-edge.test 2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/at/sanity-edge.test 2018-01-30 
02:47:10.000000000 +0100
@@ -216,7 +216,10 @@
 is( exception { $l2->get_element_location_in_view() }, undef, 
"get_element_location_in_view works");
 
 is($driver->find_element('hidon','id')->is_displayed(),0,"is_displayed returns 
false for type=hidden elements");
-is($driver->find_element('no-see-em','id')->is_displayed(),0,"is_displayed 
returns false for display=none");
+my $gone = $driver->find_element('no-see-em','id');
+is($gone->is_displayed(),0,"is_displayed returns false for display=none");
+is($gone->is_enabled(),1,"is_enabled returns true for non-input elements");
+
 is($driver->find_element('h1','tag_name')->get_text(),'Howdy Howdy Howdy ', 
"get_text works (WD3)");
 
 $driver->find_element('clickme','id')->click();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/at/sanity-ie.test 
new/Selenium-Remote-Driver-1.23/at/sanity-ie.test
--- old/Selenium-Remote-Driver-1.21/at/sanity-ie.test   2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/at/sanity-ie.test   2018-01-30 
02:47:10.000000000 +0100
@@ -208,7 +208,10 @@
 like( exception { $l2->get_element_location_in_view() }, qr/unknown/, 
"get_element_location_in_view works");
 
 is($driver->find_element('hidon','id')->is_displayed(),0,"is_displayed returns 
false for type=hidden elements");
-is($driver->find_element('no-see-em','id')->is_displayed(),0,"is_displayed 
returns false for display=none");
+my $gone = $driver->find_element('no-see-em','id');
+is($gone->is_displayed(),0,"is_displayed returns false for display=none");
+is($gone->is_enabled(),1,"is_enabled returns true for non-input elements");
+
 is($driver->find_element('h1','tag_name')->get_text(),'Howdy Howdy Howdy', 
"get_text works (WD3)");
 
 $driver->find_element('clickme','id')->click();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/at/sanity.test 
new/Selenium-Remote-Driver-1.23/at/sanity.test
--- old/Selenium-Remote-Driver-1.21/at/sanity.test      2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/at/sanity.test      2018-01-30 
02:47:10.000000000 +0100
@@ -14,11 +14,15 @@
 #TODO: cover new_from_caps
 #TODO: Selenium::Firefox::Profile usage
 
+$Selenium::Remote::Driver::FORCE_WD3 = 1;
 my $driver = Selenium::Remote::Driver->new(
     remote_server_addr => 'localhost',
     port => 4444,
     browser_name => 'firefox',
     accept_ssl_certs => 1,
+    extra_capabilities => {
+        log => { level => 'trace' },
+    },
 );
 isa_ok($driver,'Selenium::Remote::Driver',"Can get new S::R::D with 
WebDriver3");
 
@@ -73,16 +77,12 @@
 my $otherloc = abs_path("$FindBin::Bin/other.html");
 $driver->get("file://$otherloc");
 $driver->go_back();
-$driver->dismiss_alert();
-$driver->dismiss_alert();
 like($driver->get_title(),qr/test/i,"go_back works (WD3)");
 
 $driver->go_forward();
 like($driver->get_page_source(),qr/ZIPPY/,"go_forward & get_page_source works 
(WD3)");
 is(exception { $driver->refresh() }, undef, "refresh works (WD3)");
 $driver->go_back();
-$driver->dismiss_alert();
-$driver->dismiss_alert();
 
 #TODO execute_*_script testing
 
@@ -133,10 +133,13 @@
 ok($driver->switch_to_frame(),"can switch to parent frame (WD3 only)");
 
 ok($driver->set_window_position(1,1),"can set window position (WD3)");
-ok($driver->set_window_size(200,200),"can set window size (WD3)");
+ok($driver->set_window_size(640,480),"can set window size (WD3)");
 
-ok($driver->maximize_window(),"can maximize window (WD3)");
-ok($driver->minimize_window(),"can minimize window (WD3 only)");
+SKIP: {
+    skip(2, "maxi/mini not working right now?");
+    ok($driver->maximize_window(),"can maximize window (WD3)");
+    ok($driver->minimize_window(),"can minimize window (WD3 only)");
+}
 ok($driver->fullscreen_window(),"can fullscreen window (WD3 only)");
 
 is(scalar(@{$driver->get_all_cookies()}),1,"can get cookie list (WD3)");
@@ -193,7 +196,10 @@
 ok( defined $l2->get_element_location_in_view()->{x}, 
"get_element_location_in_view polyfill works (WD3)");
 
 is($driver->find_element('hidon','id')->is_displayed(),0,"is_displayed returns 
false for type=hidden elements");
-is($driver->find_element('no-see-em','id')->is_displayed(),0,"is_displayed 
returns false for display=none");
+my $gone = $driver->find_element('no-see-em','id');
+is($gone->is_displayed(),0,"is_displayed returns false for display=none");
+is($gone->is_enabled(),1,"is_enabled returns true for non-input elements");
+
 is($driver->find_element('h1','tag_name')->get_text(),'Howdy Howdy Howdy', 
"get_text works (WD3)");
 
 $driver->find_element('clickme','id')->click();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/dist.ini 
new/Selenium-Remote-Driver-1.23/dist.ini
--- old/Selenium-Remote-Driver-1.21/dist.ini    2018-01-20 03:21:00.000000000 
+0100
+++ new/Selenium-Remote-Driver-1.23/dist.ini    2018-01-30 02:47:10.000000000 
+0100
@@ -1,5 +1,5 @@
 name = Selenium-Remote-Driver
-version = 1.21
+version = 1.23
 author = George S. Baugh <[email protected]>
 author = Aditya Ivaturi <[email protected]>
 author = Daniel Gempesaw <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/ActionChains.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/ActionChains.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/ActionChains.pm        
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/ActionChains.pm        
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::ActionChains;
-$Selenium::ActionChains::VERSION = '1.21';
+$Selenium::ActionChains::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -169,7 +169,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/CanStartBinary/FindBinary.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/CanStartBinary/FindBinary.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/CanStartBinary/FindBinary.pm   
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/CanStartBinary/FindBinary.pm   
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::CanStartBinary::FindBinary;
-$Selenium::CanStartBinary::FindBinary::VERSION = '1.21';
+$Selenium::CanStartBinary::FindBinary::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -84,7 +84,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =for Pod::Coverage *EVERYTHING*
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/CanStartBinary/ProbePort.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/CanStartBinary/ProbePort.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/CanStartBinary/ProbePort.pm    
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/CanStartBinary/ProbePort.pm    
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::CanStartBinary::ProbePort;
-$Selenium::CanStartBinary::ProbePort::VERSION = '1.21';
+$Selenium::CanStartBinary::ProbePort::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -57,7 +57,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =for Pod::Coverage *EVERYTHING*
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/CanStartBinary.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/CanStartBinary.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/CanStartBinary.pm      
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/CanStartBinary.pm      
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::CanStartBinary;
-$Selenium::CanStartBinary::VERSION = '1.21';
+$Selenium::CanStartBinary::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -346,7 +346,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/lib/Selenium/Chrome.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Chrome.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Chrome.pm      2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Chrome.pm      2018-01-30 
02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Chrome;
-$Selenium::Chrome::VERSION = '1.21';
+$Selenium::Chrome::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -57,7 +57,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Firefox/Binary.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Firefox/Binary.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Firefox/Binary.pm      
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Firefox/Binary.pm      
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Firefox::Binary;
-$Selenium::Firefox::Binary::VERSION = '1.21';
+$Selenium::Firefox::Binary::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -120,7 +120,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SUBROUTINES
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Firefox/Profile.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Firefox/Profile.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Firefox/Profile.pm     
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Firefox/Profile.pm     
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Firefox::Profile;
-$Selenium::Firefox::Profile::VERSION = '1.21';
+$Selenium::Firefox::Profile::VERSION = '1.23';
 # ABSTRACT: Use custom profiles with Selenium::Remote::Driver
 # TODO: convert this to Moo!
 
@@ -264,7 +264,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/lib/Selenium/Firefox.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Firefox.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Firefox.pm     2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Firefox.pm     2018-01-30 
02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Firefox;
-$Selenium::Firefox::VERSION = '1.21';
+$Selenium::Firefox::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -134,7 +134,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/InternetExplorer.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/InternetExplorer.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/InternetExplorer.pm    
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/InternetExplorer.pm    
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::InternetExplorer;
-$Selenium::InternetExplorer::VERSION = '1.21';
+$Selenium::InternetExplorer::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -33,7 +33,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/PhantomJS.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/PhantomJS.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/PhantomJS.pm   2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/PhantomJS.pm   2018-01-30 
02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::PhantomJS;
-$Selenium::PhantomJS::VERSION = '1.21';
+$Selenium::PhantomJS::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -54,7 +54,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Commands.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Commands.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Commands.pm     
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Commands.pm     
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Commands;
-$Selenium::Remote::Commands::VERSION = '1.21';
+$Selenium::Remote::Commands::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -520,7 +520,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Driver/CanSetWebdriverContext.pm
 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Driver/CanSetWebdriverContext.pm
--- 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Driver/CanSetWebdriverContext.pm
        2018-01-20 03:21:00.000000000 +0100
+++ 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Driver/CanSetWebdriverContext.pm
        2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Driver::CanSetWebdriverContext;
-$Selenium::Remote::Driver::CanSetWebdriverContext::VERSION = '1.21';
+$Selenium::Remote::Driver::CanSetWebdriverContext::VERSION = '1.23';
 # ABSTRACT: Customize the webdriver context prefix for various drivers
 
 use strict;
@@ -27,7 +27,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Driver/Firefox/Profile.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Driver/Firefox/Profile.pm
--- 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Driver/Firefox/Profile.pm   
    2018-01-20 03:21:00.000000000 +0100
+++ 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Driver/Firefox/Profile.pm   
    2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Driver::Firefox::Profile;
-$Selenium::Remote::Driver::Firefox::Profile::VERSION = '1.21';
+$Selenium::Remote::Driver::Firefox::Profile::VERSION = '1.23';
 # ABSTRACT: Use custom profiles with Selenium::Remote::Driver
 use strict;
 use warnings;
@@ -25,7 +25,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Driver.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Driver.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Driver.pm       
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Driver.pm       
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Driver;
-$Selenium::Remote::Driver::VERSION = '1.21';
+$Selenium::Remote::Driver::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -48,6 +48,7 @@
 };
 
 our $FORCE_WD2 = 0;
+our $FORCE_WD3 = 0;
 our %CURRENT_ACTION_CHAIN = ( actions => [] );
 
 
@@ -398,14 +399,16 @@
     $extra_capabilities ||= {};
     my $args = {
         'desiredCapabilities' => {
-            'browserName'       => $self->browser_name,
-            'platform'          => $self->platform,
-            'javascriptEnabled' => $self->javascript,
-            'version'           => $self->version,
-            'acceptSslCerts'    => $self->accept_ssl_certs,
+            'browserName'        => $self->browser_name,
+            'platform'           => $self->platform,
+            'javascriptEnabled'  => $self->javascript,
+            'version'            => $self->version,
+            'acceptSslCerts'     => $self->accept_ssl_certs,
             %$extra_capabilities,
         },
     };
+    $args->{'extra_capabilities'} = \%$extra_capabilities unless $FORCE_WD2;
+
 
     if ( defined $self->proxy ) {
         $args->{desiredCapabilities}->{proxy} = $self->proxy;
@@ -438,11 +441,13 @@
     foreach my $cap (keys(%{$args->{capabilities}->{alwaysMatch} })) {
         #Handle browser specific capabilities
         if (exists($args->{desiredCapabilities}->{browserName}) && $cap eq 
'extra_capabilities') {
+
             if (exists 
$args->{capabilities}->{alwaysMatch}->{'moz:firefoxOptions'}->{args}) {
                 $args->{capabilities}->{alwaysMatch}->{$cap}->{args} = 
$args->{capabilities}->{alwaysMatch}->{'moz:firefoxOptions'}->{args};
             }
             $args->{capabilities}->{alwaysMatch}->{'moz:firefoxOptions'} = 
$args->{capabilities}->{alwaysMatch}->{$cap} if 
$args->{desiredCapabilities}->{browserName} eq 'firefox';
-            $args->{capabilities}->{alwaysMatch}->{'chromeOptions'}      = 
$args->{capabilities}->{alwaysMatch}->{$cap} if 
$args->{desiredCapabilities}->{browserName} eq 'chrome';
+            #XXX the chrome documentation is lies, you can't do this yet
+            #$args->{capabilities}->{alwaysMatch}->{'chromeOptions'}      = 
$args->{capabilities}->{alwaysMatch}->{$cap} if 
$args->{desiredCapabilities}->{browserName} eq 'chrome';
             #Does not appear there are any MSIE based options, so let's just 
let that be
         }
         if (exists($args->{desiredCapabilities}->{browserName}) && 
$args->{desiredCapabilities}->{browserName} eq 'firefox' && $cap eq 
'firefox_profile') {
@@ -464,6 +469,7 @@
         }
         delete $args->{capabilities}->{alwaysMatch}->{$cap} if !any { $_ eq 
$cap } @$caps;
     }
+    delete $args->{desiredCapabilities} if $FORCE_WD3; #XXX fork 
working-around busted fallback in firefox
     delete $args->{capabilities} if $FORCE_WD2; #XXX 'secret' feature to help 
the legacy unit tests to work
 
     # geckodriver has not yet implemented the GET /status endpoint
@@ -784,6 +790,7 @@
     my ( $self, $window ) = @_;
     $window = ( defined $window ) ? $window : 'current';
     my $res = { 'command' => 'getWindowSize', 'window_handle' => $window };
+    $res = {'command' => 'getWindowRect', handle => $window } if 
$self->{is_wd3} && $self->browser_name ne 'chrome';
     return $self->_execute_command($res);
 }
 
@@ -792,6 +799,7 @@
     my ( $self, $window ) = @_;
     $window = ( defined $window ) ? $window : 'current';
     my $res = { 'command' => 'getWindowPosition', 'window_handle' => $window };
+    $res = {'command' => 'getWindowRect', handle => $window } if 
$self->{is_wd3} && $self->browser_name ne 'chrome';
     return $self->_execute_command($res);
 }
 
@@ -873,6 +881,7 @@
             {
                 if ($self->{is_wd3}) {
                     $args[$i] = { 'element-6066-11e4-a52e-4f735466cecf' => ( 
$args[$i] )->{id} };
+                    $args[$i]->{ELEMENT} = $args[$i]->{id} if 
$self->browser_name eq 'chrome'; #XXX sometimes they prefer the latter/prior
                 } else {
                     $args[$i] = { 'ELEMENT' => ( $args[$i] )->{id} };
                 }
@@ -916,6 +925,7 @@
             {
                 if ($self->{is_wd3}) {
                     $args[$i] = { 'element-6066-11e4-a52e-4f735466cecf' => ( 
$args[$i] )->{id} };
+                    $args[$i]->{ELEMENT} = $args[$i]->{id} if 
$self->browser_name eq 'chrome'; #XXX sometimes they prefer the latter/prior
                 } else {
                     $args[$i] = { 'ELEMENT' => ( $args[$i] )->{id} };
                 }
@@ -1054,6 +1064,9 @@
     }
     my $res = { 'command' => 'setWindowPosition', 'window_handle' => $window };
     my $params = { 'x' => $x, 'y' => $y };
+    if ( $self->{is_wd3} && $self->browser_name ne 'chrome') {
+        $res = {'command' => 'setWindowRect', handle => $window };
+    }
     my $ret = $self->_execute_command( $res, $params );
     return $ret ? 1 : 0;
 }
@@ -1069,6 +1082,9 @@
     $width += 0;
     my $res = { 'command' => 'setWindowSize', 'window_handle' => $window };
     my $params = { 'height' => $height, 'width' => $width };
+    if ( $self->{is_wd3} && $self->browser_name ne 'chrome') {
+        $res = {'command' => 'setWindowRect', handle => $window };
+    }
     my $ret = $self->_execute_command( $res, $params );
     return $ret ? 1 : 0;
 }
@@ -1713,7 +1729,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
@@ -1846,6 +1862,14 @@
 =head1 WC3 WEBDRIVER COMPATIBILITY
 
 WC3 Webdriver is a constantly evolving standard, so some things may or may not 
work at any given time.
+
+Furthermore, out of date drivers probably identify as WD3, while only 
implementing a few methods and retaining JSONWire functionality.
+One way of dealing with this is setting:
+
+    $driver->{is_wd3} = 0
+
+Of course, this will prevent access of any new WC3 methods, but will probably 
make your tests pass until your browser's driver gets it's act together.
+
 That said, the following 'sanity tests' in the at/ (acceptance test) directory 
of the module passed on the following versions:
 
 =over 4
@@ -1875,6 +1899,24 @@
 There is also a 'legacy.test' file available to run against old 
browsers/selenium (2.x servers, pre geckodriver).
 This should only be used to verify backwards-compatibility has not been broken.
 
+=head2 Firefox Notes
+
+If you are intending to pass extra_capabilities to firefox on a WD3 enabled 
server with geckodriver, you MUST do the following:
+
+   $Selenium::Remote::Driver::FORCE_WD3=1;
+
+This is because the gecko driver prefers legacy capabilities, both of which 
are normally passed for compatibility reasons.
+
+=head2 Chrome Notes
+
+extra_capabilities may? not work, because chromedriver considers the 
chromeOptions parameter to be invalid, despite it's documentation here:
+
+    https://sites.google.com/a/chromium.org/chromedriver/capabilities
+
+Other bindings get around this by just using the 'old' way of passing desired 
capabilities.  You can do this too like so:
+
+    $Selenium::Remote::Driver::FORCE_WD2=1;
+
 =head1 CONSTRUCTOR
 
 =head2 new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/ErrorHandler.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/ErrorHandler.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/ErrorHandler.pm 
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/ErrorHandler.pm 
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::ErrorHandler;
-$Selenium::Remote::ErrorHandler::VERSION = '1.21';
+$Selenium::Remote::ErrorHandler::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -148,7 +148,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SUBROUTINES
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Finders.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Finders.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Finders.pm      
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Finders.pm      
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Finders;
-$Selenium::Remote::Finders::VERSION = '1.21';
+$Selenium::Remote::Finders::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -41,7 +41,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Mock/Commands.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Mock/Commands.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Mock/Commands.pm        
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Mock/Commands.pm        
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Mock::Commands;
-$Selenium::Remote::Mock::Commands::VERSION = '1.21';
+$Selenium::Remote::Mock::Commands::VERSION = '1.23';
 # ABSTRACT: utility class to mock Selenium::Remote::Commands
 
 use strict;
@@ -51,7 +51,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Mock/RemoteConnection.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Mock/RemoteConnection.pm
--- 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Mock/RemoteConnection.pm    
    2018-01-20 03:21:00.000000000 +0100
+++ 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Mock/RemoteConnection.pm    
    2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Mock::RemoteConnection;
-$Selenium::Remote::Mock::RemoteConnection::VERSION = '1.21';
+$Selenium::Remote::Mock::RemoteConnection::VERSION = '1.23';
 # ABSTRACT: utility class to mock the responses from Selenium server
 
 use strict;
@@ -182,7 +182,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/RemoteConnection.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/RemoteConnection.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/RemoteConnection.pm     
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/RemoteConnection.pm     
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::RemoteConnection;
-$Selenium::Remote::RemoteConnection::VERSION = '1.21';
+$Selenium::Remote::RemoteConnection::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -223,7 +223,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Spec.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Spec.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/Spec.pm 2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/Spec.pm 2018-01-30 
02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::Spec;
-$Selenium::Remote::Spec::VERSION = '1.21';
+$Selenium::Remote::Spec::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -37,10 +37,8 @@
 GET     session/:sessionId/window/handles                    0 
getWindowHandles             Get Window Handles
 POST    session/:sessionId/frame                             1 switchToFrame   
             Switch To Frame
 POST    session/:sessionId/frame/parent                      1 
switchToParentFrame          Switch To Parent Frame
-GET     session/:sessionId/window/rect                       0 getWindowSize   
             Get Window Size (v2->v3 shim)
-GET     session/:sessionId/window/rect                       0 
getWindowPosition            Get Window Position (v2->v3 shim)
-POST    session/:sessionId/window/rect                       1 setWindowSize   
             Set Window Size (v2->v3 shim)
-POST    session/:sessionId/window/rect                       1 
setWindowPosition            Set Window Position (v2->v3 shim)
+GET     session/:sessionId/window/rect                       0 getWindowRect   
             Get Window Size/Position (v2->v3 shim)
+POST    session/:sessionId/window/rect                       1 setWindowRect   
             Set Window Size/Position (v2->v3 shim)
 POST    session/:sessionId/window/maximize                   1 maximizeWindow  
             Maximize Window
 POST    session/:sessionId/window/minimize                   1 minimizeWindow  
             Minimize Window
 POST    session/:sessionId/window/fullscreen                 1 
fullscreenWindow             Fullscreen Window
@@ -189,7 +187,7 @@
         $data->{payload}->{type}     = 'implicit'; #XXX chrome doesn't follow 
the spec
     }
     $data->{payload}->{value}    = $args->{text}          if $args->{text} && 
$args->{command} ne 'sendKeysToElement';
-    $data->{payload}->{handle}   = $args->{window_handle} if grep { 
$args->{command} eq $_ } qw{setWindowSize getWindowSize setWindowPosition 
getWindowPosition fullscreenWindow minimizeWindow maximizeWindow};
+    $data->{payload}->{handle}   = $args->{window_handle} if grep { 
$args->{command} eq $_ } qw{fullscreenWindow minimizeWindow maximizeWindow};
     return $data;
 }
 
@@ -241,7 +239,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/WDKeys.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/WDKeys.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/WDKeys.pm       
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/WDKeys.pm       
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::WDKeys;
-$Selenium::Remote::WDKeys::VERSION = '1.21';
+$Selenium::Remote::WDKeys::VERSION = '1.23';
 # ABSTRACT: Representation of keystrokes used by Selenium::Remote::WebDriver
 
 
@@ -85,7 +85,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/WebElement.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/WebElement.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Remote/WebElement.pm   
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Remote/WebElement.pm   
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Remote::WebElement;
-$Selenium::Remote::WebElement::VERSION = '1.21';
+$Selenium::Remote::WebElement::VERSION = '1.23';
 # ABSTRACT: Representation of an HTML Element used by Selenium Remote Driver
 
 use strict;
@@ -54,7 +54,7 @@
 
 sub submit {
     my ($self) = @_;
-    return $self->driver->execute_script("return arguments[0].submit();", 
{'element-6066-11e4-a52e-4f735466cecf'=> $self->{id}} ) if 
$self->driver->{is_wd3} && !(grep { $self->driver->browser_name eq $_ } 
qw{chrome MicrosoftEdge});
+    return $self->driver->execute_script("if (typeof arguments[0].submit === 
'function') { return arguments[0].submit(); }; return 0;", 
{'element-6066-11e4-a52e-4f735466cecf'=> $self->{id}} ) if 
$self->driver->{is_wd3} && !(grep { $self->driver->browser_name eq $_ } 
qw{chrome MicrosoftEdge});
     my $res = { 'command' => 'submitElement', 'id' => $self->id };
     return $self->_execute_command($res);
 }
@@ -112,7 +112,10 @@
 
 sub is_enabled {
     my ($self) = @_;
-    return $self->get_property('enabled') ? 1 : 0 if $self->driver->{is_wd3} 
&& !(grep { $self->driver->browser_name eq $_ } qw{chrome MicrosoftEdge});
+    if ($self->driver->{is_wd3} && !(grep { $self->driver->browser_name eq $_ 
} qw{chrome MicrosoftEdge})) {
+        return 1 if $self->get_tag_name() ne 'input';
+        return $self->get_property('disabled') ? 0 : 1;
+    }
     my $res = { 'command' => 'isElementEnabled', 'id' => $self->id };
     return $self->_execute_command($res);
 }
@@ -154,10 +157,14 @@
 
 sub get_element_location_in_view {
     my ($self) = @_;
+    #XXX chrome is dopey here
     return $self->driver->execute_script(qq{
-        arguments[0].scrollIntoView();
-        var pos = arguments[0].getBoundingClientRect();
-        return {y:pos.top,x:pos.left};
+        if (typeof(arguments[0]) !== 'undefined' && arguments[0].nodeType === 
Node.ELEMENT_NODE) {
+            arguments[0].scrollIntoView();
+            var pos = arguments[0].getBoundingClientRect();
+            return {y:pos.top,x:pos.left};
+        }
+        return {};
     }, {'element-6066-11e4-a52e-4f735466cecf'=> $self->{id}} ) if 
$self->driver->{is_wd3} && grep { $self->driver->browser_name eq $_ } 
('firefox','internet explorer');
     my $res = { 'command' => 'getElementLocationInView', 'id' => $self->id };
     return $self->_execute_command($res);
@@ -298,7 +305,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 DESCRIPTION
 
@@ -380,6 +387,10 @@
     Submit a FORM element. The submit command may also be applied to any 
element
     that is a descendant of a FORM element.
 
+ Compatibility:
+    On webdriver3 enabled servers, this uses a JS shim, which may not submit 
correctly depending on the element you are attempting to submit.
+    Try clicking it if possible instead.
+
  Usage:
     $elem->submit();
 
@@ -502,7 +513,9 @@
     determine an element's location for correctly generating native events.
 
  Compatibility:
-    Not available on WebDriver3 enabled selenium servers.
+    On Webdriver3 servers, we have to implement this with a JS shim.
+    This means in some contexts, you won't get any position returned, as the 
element isn't considered an element internally.
+    You may have to go up the element stack to find the element that actually 
has the bounding box.
 
  Output:
     {x:number, y:number} The X and Y coordinates for the element on the page.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/lib/Selenium/Waiter.pm 
new/Selenium-Remote-Driver-1.23/lib/Selenium/Waiter.pm
--- old/Selenium-Remote-Driver-1.21/lib/Selenium/Waiter.pm      2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Selenium/Waiter.pm      2018-01-30 
02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Selenium::Waiter;
-$Selenium::Waiter::VERSION = '1.21';
+$Selenium::Waiter::VERSION = '1.23';
 use strict;
 use warnings;
 
@@ -65,7 +65,7 @@
 
 =head1 VERSION
 
-version 1.21
+version 1.23
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Chrome.pm 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Chrome.pm
--- old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Chrome.pm 2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Chrome.pm 2018-01-30 
02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Test::Selenium::Chrome;
-$Test::Selenium::Chrome::VERSION = '1.21';
+$Test::Selenium::Chrome::VERSION = '1.23';
 use Moo;
 extends 'Selenium::Chrome', 'Test::Selenium::Remote::Driver';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Firefox.pm 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Firefox.pm
--- old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Firefox.pm        
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Firefox.pm        
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Test::Selenium::Firefox;
-$Test::Selenium::Firefox::VERSION = '1.21';
+$Test::Selenium::Firefox::VERSION = '1.23';
 use Moo;
 extends 'Selenium::Firefox', 'Test::Selenium::Remote::Driver';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/InternetExplorer.pm 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/InternetExplorer.pm
--- old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/InternetExplorer.pm       
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/InternetExplorer.pm       
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Test::Selenium::InternetExplorer;
-$Test::Selenium::InternetExplorer::VERSION = '1.21';
+$Test::Selenium::InternetExplorer::VERSION = '1.23';
 use Moo;
 extends 'Selenium::InternetExplorer', 'Test::Selenium::Remote::Driver';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/PhantomJS.pm 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/PhantomJS.pm
--- old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/PhantomJS.pm      
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/PhantomJS.pm      
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Test::Selenium::PhantomJS;
-$Test::Selenium::PhantomJS::VERSION = '1.21';
+$Test::Selenium::PhantomJS::VERSION = '1.23';
 use Moo;
 extends 'Selenium::PhantomJS', 'Test::Selenium::Remote::Driver';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Remote/Driver.pm 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Remote/Driver.pm
--- old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Remote/Driver.pm  
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Remote/Driver.pm  
2018-01-30 02:47:10.000000000 +0100
@@ -1,5 +1,5 @@
 package Test::Selenium::Remote::Driver;
-$Test::Selenium::Remote::Driver::VERSION = '1.21';
+$Test::Selenium::Remote::Driver::VERSION = '1.23';
 # ABSTRACT: Useful testing subclass for Selenium::Remote::Driver
 
 use Moo;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Remote/Role/DoesTesting.pm 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Remote/Role/DoesTesting.pm
--- 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Remote/Role/DoesTesting.pm    
    2018-01-20 03:21:00.000000000 +0100
+++ 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Remote/Role/DoesTesting.pm    
    2018-01-30 02:47:10.000000000 +0100
@@ -1,7 +1,7 @@
 package Test::Selenium::Remote::Role::DoesTesting;
 # ABSTRACT: Role to cope with everything that is related to testing (could
 # be reused in both testing classes)
-$Test::Selenium::Remote::Role::DoesTesting::VERSION = '1.21';
+$Test::Selenium::Remote::Role::DoesTesting::VERSION = '1.23';
 use Moo::Role;
 use Test::Builder;
 use Try::Tiny;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Remote/WebElement.pm 
new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Remote/WebElement.pm
--- old/Selenium-Remote-Driver-1.21/lib/Test/Selenium/Remote/WebElement.pm      
2018-01-20 03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/lib/Test/Selenium/Remote/WebElement.pm      
2018-01-30 02:47:10.000000000 +0100
@@ -1,6 +1,6 @@
 package Test::Selenium::Remote::WebElement;
 # ABSTRACT: A sub-class of L<Selenium::Remote::WebElement>, with several 
test-specific method additions.
-$Test::Selenium::Remote::WebElement::VERSION = '1.21';
+$Test::Selenium::Remote::WebElement::VERSION = '1.23';
 use Moo;
 use Sub::Install;
 extends 'Selenium::Remote::WebElement';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Selenium-Remote-Driver-1.21/t/01-webdriver3.t 
new/Selenium-Remote-Driver-1.23/t/01-webdriver3.t
--- old/Selenium-Remote-Driver-1.21/t/01-webdriver3.t   2018-01-20 
03:21:00.000000000 +0100
+++ new/Selenium-Remote-Driver-1.23/t/01-webdriver3.t   2018-01-30 
02:47:10.000000000 +0100
@@ -93,9 +93,9 @@
     is($self->{capabilities},'eee',"Caps set correctly in wd3 mode");
     is_deeply($args_modified->{capabilities},$expected,"Desired capabilities 
correctly translated to Firefox (WD3)");
 
-    $expected->{alwaysMatch}->{'chromeOptions'} = 
$expected->{alwaysMatch}->{'moz:firefoxOptions'};
+    #$expected->{alwaysMatch}->{'chromeOptions'} = 
$expected->{alwaysMatch}->{'moz:firefoxOptions'};
     $expected->{alwaysMatch}->{'moz:firefoxOptions'} = {};
-    $expected->{alwaysMatch}->{chromeOptions}->{args} = ['-profile', 
'~/.mozilla/firefox/vbdgri9o.default'];
+    #$expected->{alwaysMatch}->{chromeOptions}->{args} = ['-profile', 
'~/.mozilla/firefox/vbdgri9o.default'];
     $expected->{alwaysMatch}->{browserName} = 'chrome';
 
     $args->{desiredCapabilities}->{browserName} = 'chrome';
@@ -109,7 +109,7 @@
     #_execute_command with payload 'hitting all the right buttons'
     #also check that fallback works w/ the right special missing word
     #also check capability shortcut
-    my $self = bless({ is_wd3 => 1, capabilities => 'wakka wakka' 
},"Selenium::Remote::Driver");
+    my $self = bless({ is_wd3 => 1, capabilities => 'wakka wakka', 
browser_name => 'firefox' },"Selenium::Remote::Driver");
 
     no warnings qw{redefine once};
     local *Selenium::Remote::RemoteConnection::request = sub {return { 
sessionId => 'zippy', cmd_status => 'OK' }};
@@ -186,7 +186,7 @@
         property_name => 'plan',
         other         => 'a canal',
         window_handle => 'panama',
-        command       => 'setWindowSize',
+        command       => 'fullscreenWindow',
         ms            => 666,
         type          => 'page load',
         using         => 'id',
@@ -204,6 +204,7 @@
             'value'    => 'zippy',
         },
     };
+
     is_deeply($obj->get_params($args),$expected,"get_params: var substitution 
works, payload construction works (mostly)");
 
     $args->{type} = 'implicit';


Reply via email to