@@ -54,33 +54,7 @@ public function start(): WebDriver
54
54
$ this ->waitUntilReady ($ this ->process , $ url .$ this ->options ['path ' ], 'firefox ' );
55
55
}
56
56
57
- $ firefoxOptions = [];
58
- if (isset ($ _SERVER ['PANTHER_FIREFOX_BINARY ' ])) {
59
- $ firefoxOptions ['binary ' ] = $ _SERVER ['PANTHER_FIREFOX_BINARY ' ];
60
- }
61
- if ($ this ->arguments ) {
62
- $ firefoxOptions ['args ' ] = $ this ->arguments ;
63
- }
64
-
65
- $ capabilities = DesiredCapabilities::firefox ();
66
- $ capabilities ->setCapability ('moz:firefoxOptions ' , $ firefoxOptions );
67
-
68
- // Prefer reduced motion, see https://developer.mozilla.org/fr/docs/Web/CSS/@media/prefers-reduced-motion
69
- /** @var FirefoxOptions|array $firefoxOptions */
70
- $ firefoxOptions = $ capabilities ->getCapability ('moz:firefoxOptions ' ) ?? [];
71
- $ firefoxOptions = $ firefoxOptions instanceof FirefoxOptions ? $ firefoxOptions ->toArray () : $ firefoxOptions ;
72
- if (!filter_var ($ _SERVER ['PANTHER_NO_REDUCED_MOTION ' ] ?? false , \FILTER_VALIDATE_BOOLEAN )) {
73
- $ firefoxOptions ['prefs ' ]['ui.prefersReducedMotion ' ] = 1 ;
74
- } else {
75
- $ firefoxOptions ['prefs ' ]['ui.prefersReducedMotion ' ] = 0 ;
76
- }
77
- $ capabilities ->setCapability ('moz:firefoxOptions ' , $ firefoxOptions );
78
-
79
- foreach ($ this ->options ['capabilities ' ] as $ capability => $ value ) {
80
- $ capabilities ->setCapability ($ capability , $ value );
81
- }
82
-
83
- return RemoteWebDriver::create ($ url , $ capabilities , $ this ->options ['connection_timeout_in_ms ' ] ?? null , $ this ->options ['request_timeout_in_ms ' ] ?? null );
57
+ return RemoteWebDriver::create ($ url , $ this ->buildCapabilities (), $ this ->options ['connection_timeout_in_ms ' ] ?? null , $ this ->options ['request_timeout_in_ms ' ] ?? null );
84
58
}
85
59
86
60
public function quit (): void
@@ -123,6 +97,37 @@ private function getDefaultArguments(): array
123
97
return $ args ;
124
98
}
125
99
100
+ private function buildCapabilities (): DesiredCapabilities
101
+ {
102
+ $ firefoxOptions = [];
103
+ if (isset ($ _SERVER ['PANTHER_FIREFOX_BINARY ' ])) {
104
+ $ firefoxOptions ['binary ' ] = $ _SERVER ['PANTHER_FIREFOX_BINARY ' ];
105
+ }
106
+ if ($ this ->arguments ) {
107
+ $ firefoxOptions ['args ' ] = $ this ->arguments ;
108
+ }
109
+
110
+ $ capabilities = DesiredCapabilities::firefox ();
111
+ $ capabilities ->setCapability ('moz:firefoxOptions ' , $ firefoxOptions );
112
+
113
+ // Prefer reduced motion, see https://developer.mozilla.org/fr/docs/Web/CSS/@media/prefers-reduced-motion
114
+ /** @var FirefoxOptions|array $firefoxOptions */
115
+ $ firefoxOptions = $ capabilities ->getCapability ('moz:firefoxOptions ' ) ?? [];
116
+ $ firefoxOptions = $ firefoxOptions instanceof FirefoxOptions ? $ firefoxOptions ->toArray () : $ firefoxOptions ;
117
+ if (!filter_var ($ _SERVER ['PANTHER_NO_REDUCED_MOTION ' ] ?? false , \FILTER_VALIDATE_BOOLEAN )) {
118
+ $ firefoxOptions ['prefs ' ]['ui.prefersReducedMotion ' ] = 1 ;
119
+ } else {
120
+ $ firefoxOptions ['prefs ' ]['ui.prefersReducedMotion ' ] = 0 ;
121
+ }
122
+ $ capabilities ->setCapability ('moz:firefoxOptions ' , $ firefoxOptions );
123
+
124
+ foreach ($ this ->options ['capabilities ' ] as $ capability => $ value ) {
125
+ $ capabilities ->setCapability ($ capability , $ value );
126
+ }
127
+
128
+ return $ capabilities ;
129
+ }
130
+
126
131
private function getDefaultOptions (): array
127
132
{
128
133
return [
0 commit comments