diff --git a/src/WebdriverClassicDriver.php b/src/WebdriverClassicDriver.php index 438abd5..38f6bb1 100644 --- a/src/WebdriverClassicDriver.php +++ b/src/WebdriverClassicDriver.php @@ -789,29 +789,22 @@ private function getNormalisedBrowserName(): string */ private function initCapabilities(array $desiredCapabilities): DesiredCapabilities { - // Build base capabilities - $caps = $this->getBrowserSpecificCapabilities() ?? new DesiredCapabilities(); - - // Set defaults - $defaults = array_merge( - self::DEFAULT_CAPABILITIES['default'], - self::DEFAULT_CAPABILITIES[$this->getNormalisedBrowserName()] ?? [] - ); - foreach ($defaults as $key => $value) { - if ($caps->getCapability($key) === null) { - $caps->setCapability($key, $value); - } - } - - // Merge in other requested types - foreach ($desiredCapabilities as $key => $value) { - $caps->setCapability($key, $value); + $capabilities = $this->createBrowserSpecificCapabilities(); + + foreach ( + array_merge( + self::DEFAULT_CAPABILITIES['default'], + self::DEFAULT_CAPABILITIES[$this->getNormalisedBrowserName()] ?? [], + $desiredCapabilities, + ) as $capabilityKey => $capabilityValue + ) { + $capabilities->setCapability($capabilityKey, $capabilityValue); } - return $caps; + return $capabilities; } - private function getBrowserSpecificCapabilities(): ?DesiredCapabilities + private function createBrowserSpecificCapabilities(): DesiredCapabilities { switch ($this->getNormalisedBrowserName()) { case WebDriverBrowserType::FIREFOX: @@ -855,7 +848,7 @@ private function getBrowserSpecificCapabilities(): ?DesiredCapabilities case WebDriverBrowserType::MOCK: case WebDriverBrowserType::IE_HTA: default: - return null; + return new DesiredCapabilities(); } }