@@ -61,7 +61,10 @@ public function session($browserName = Browser::FIREFOX, $desiredCapabilities =
6161 };
6262
6363 $ w3c_mode = true ;
64- if (isset ($ desiredCapabilities ['w3c ' ]) && $ desiredCapabilities ['w3c ' ] === false ) {
64+ if (
65+ (isset ($ desiredCapabilities ['w3c ' ]) && $ desiredCapabilities ['w3c ' ] === false ) ||
66+ (isset ($ desiredCapabilities ['goog:chromeOptions ' ]['w3c ' ]) && $ desiredCapabilities ['goog:chromeOptions ' ]['w3c ' ] === false )
67+ ) {
6568 $ w3c_mode = false ;
6669 }
6770
@@ -77,32 +80,25 @@ public function session($browserName = Browser::FIREFOX, $desiredCapabilities =
7780 $ parameters ['capabilities ' ]['alwaysMatch ' ] = $ requiredCapabilities ;
7881 }
7982
80- try {
81- $ result = $ this ->curl (
82- 'POST ' ,
83- '/session ' ,
84- $ parameters ,
85- array (CURLOPT_FOLLOWLOCATION => true )
86- );
87- } catch (\Exception $ e ) {
88- // fallback to legacy JSON Wire Protocol
89- $ capabilities = $ desiredCapabilities ?: array ();
90- $ capabilities [Capability::BROWSER_NAME ] = $ browserName ;
91-
92- $ parameters = array ('desiredCapabilities ' => $ capabilities );
93-
94- if (is_array ($ requiredCapabilities ) && count ($ requiredCapabilities )) {
95- $ parameters ['requiredCapabilities ' ] = $ requiredCapabilities ;
96- }
97-
98- $ result = $ this ->curl (
99- 'POST ' ,
100- '/session ' ,
101- $ parameters ,
102- array (CURLOPT_FOLLOWLOCATION => true )
103- );
83+ if (!$ w3c_mode ) {
84+ // fallback to legacy JSON Wire Protocol
85+ $ capabilities = $ desiredCapabilities ?: array ();
86+ $ capabilities [Capability::BROWSER_NAME ] = $ browserName ;
87+
88+ $ parameters = array ('desiredCapabilities ' => $ capabilities );
89+
90+ if (is_array ($ requiredCapabilities ) && count ($ requiredCapabilities )) {
91+ $ parameters ['requiredCapabilities ' ] = $ requiredCapabilities ;
92+ }
10493 }
10594
95+ $ result = $ this ->curl (
96+ 'POST ' ,
97+ '/session ' ,
98+ $ parameters ,
99+ array (CURLOPT_FOLLOWLOCATION => true )
100+ );
101+
106102 $ this ->capabilities = isset ($ result ['value ' ]['capabilities ' ]) ? $ result ['value ' ]['capabilities ' ] : null ;
107103 $ session = new Session ($ result ['sessionUrl ' ], $ this ->capabilities );
108104
0 commit comments