diff --git a/src/Options.php b/src/Options.php index 4ecbdca..3a92de1 100644 --- a/src/Options.php +++ b/src/Options.php @@ -44,6 +44,13 @@ class Options */ public static $arguments = []; + /** + * Apply `ChromeOptions` configuration using a callback. + * + * @var (\Closure(\Facebook\WebDriver\Chrome\ChromeOptions):(void)):null + */ + public static $chromeOptionsCallback = null; + /** * Reset arguments. * @@ -54,6 +61,19 @@ public static function resetArguments(): void static::$arguments = []; } + /** + * Set `ChromeOptions` callback. + * + * @param (\Closure(\Facebook\WebDriver\Chrome\ChromeOptions):(void)):null $callback + * @return static + */ + public static function using($callback) + { + static::$chromeOptionsCallback = $callback; + + return new static(); + } + /** * Add a browser option. * @@ -231,6 +251,8 @@ public static function getChromeOptions() if (static::$w3cCompliant === false) { $option->setExperimentalOption('w3c', static::$w3cCompliant); } + + value(static::$chromeOptionsCallback); })->addArguments(static::$arguments); } }