Laravel version update
Laravel version update
This commit is contained in:
101
vendor/facebook/webdriver/lib/Chrome/ChromeDriver.php
vendored
Normal file
101
vendor/facebook/webdriver/lib/Chrome/ChromeDriver.php
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
namespace Facebook\WebDriver\Chrome;
|
||||
|
||||
use Facebook\WebDriver\Exception\WebDriverException;
|
||||
use Facebook\WebDriver\Remote\DesiredCapabilities;
|
||||
use Facebook\WebDriver\Remote\DriverCommand;
|
||||
use Facebook\WebDriver\Remote\RemoteWebDriver;
|
||||
use Facebook\WebDriver\Remote\Service\DriverCommandExecutor;
|
||||
use Facebook\WebDriver\Remote\WebDriverCommand;
|
||||
|
||||
class ChromeDriver extends RemoteWebDriver
|
||||
{
|
||||
/**
|
||||
* @return static
|
||||
*/
|
||||
public static function start(DesiredCapabilities $desired_capabilities = null, ChromeDriverService $service = null)
|
||||
{
|
||||
if ($desired_capabilities === null) {
|
||||
$desired_capabilities = DesiredCapabilities::chrome();
|
||||
}
|
||||
if ($service === null) {
|
||||
$service = ChromeDriverService::createDefaultService();
|
||||
}
|
||||
$executor = new DriverCommandExecutor($service);
|
||||
$driver = new static($executor, null, $desired_capabilities);
|
||||
$driver->startSession($desired_capabilities);
|
||||
|
||||
return $driver;
|
||||
}
|
||||
|
||||
public function startSession(DesiredCapabilities $desired_capabilities)
|
||||
{
|
||||
$command = new WebDriverCommand(
|
||||
null,
|
||||
DriverCommand::NEW_SESSION,
|
||||
[
|
||||
'desiredCapabilities' => $desired_capabilities->toArray(),
|
||||
]
|
||||
);
|
||||
$response = $this->executor->execute($command);
|
||||
$this->sessionID = $response->getSessionID();
|
||||
}
|
||||
|
||||
/**
|
||||
* Always throws an exception. Use ChromeDriver::start() instead.
|
||||
*
|
||||
* @param string $selenium_server_url
|
||||
* @param DesiredCapabilities|array $desired_capabilities
|
||||
* @param int|null $connection_timeout_in_ms
|
||||
* @param int|null $request_timeout_in_ms
|
||||
* @param string|null $http_proxy
|
||||
* @param int|null $http_proxy_port
|
||||
* @param DesiredCapabilities $required_capabilities
|
||||
* @throws WebDriverException
|
||||
* @return RemoteWebDriver
|
||||
*/
|
||||
public static function create(
|
||||
$selenium_server_url = 'http://localhost:4444/wd/hub',
|
||||
$desired_capabilities = null,
|
||||
$connection_timeout_in_ms = null,
|
||||
$request_timeout_in_ms = null,
|
||||
$http_proxy = null,
|
||||
$http_proxy_port = null,
|
||||
DesiredCapabilities $required_capabilities = null
|
||||
) {
|
||||
throw new WebDriverException('Please use ChromeDriver::start() instead.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Always throws an exception. Use ChromeDriver::start() instead.
|
||||
*
|
||||
* @param string $session_id The existing session id
|
||||
* @param string $selenium_server_url The url of the remote Selenium WebDriver server
|
||||
* @param int|null $connection_timeout_in_ms Set timeout for the connect phase to remote Selenium WebDriver server
|
||||
* @param int|null $request_timeout_in_ms Set the maximum time of a request to remote Selenium WebDriver server
|
||||
* @throws WebDriverException
|
||||
* @return RemoteWebDriver|void
|
||||
*/
|
||||
public static function createBySessionID(
|
||||
$session_id,
|
||||
$selenium_server_url = 'http://localhost:4444/wd/hub',
|
||||
$connection_timeout_in_ms = null,
|
||||
$request_timeout_in_ms = null
|
||||
) {
|
||||
throw new WebDriverException('Please use ChromeDriver::start() instead.');
|
||||
}
|
||||
}
|
||||
37
vendor/facebook/webdriver/lib/Chrome/ChromeDriverService.php
vendored
Normal file
37
vendor/facebook/webdriver/lib/Chrome/ChromeDriverService.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
namespace Facebook\WebDriver\Chrome;
|
||||
|
||||
use Facebook\WebDriver\Remote\Service\DriverService;
|
||||
|
||||
class ChromeDriverService extends DriverService
|
||||
{
|
||||
// The environment variable storing the path to the chrome driver executable.
|
||||
const CHROME_DRIVER_EXE_PROPERTY = 'webdriver.chrome.driver';
|
||||
|
||||
/**
|
||||
* @return static
|
||||
*/
|
||||
public static function createDefaultService()
|
||||
{
|
||||
$exe = getenv(self::CHROME_DRIVER_EXE_PROPERTY);
|
||||
$port = 9515; // TODO: Get another port if the default port is used.
|
||||
$args = ["--port=$port"];
|
||||
$service = new static($exe, $port, $args);
|
||||
|
||||
return $service;
|
||||
}
|
||||
}
|
||||
175
vendor/facebook/webdriver/lib/Chrome/ChromeOptions.php
vendored
Normal file
175
vendor/facebook/webdriver/lib/Chrome/ChromeOptions.php
vendored
Normal file
@@ -0,0 +1,175 @@
|
||||
<?php
|
||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
namespace Facebook\WebDriver\Chrome;
|
||||
|
||||
use Facebook\WebDriver\Remote\DesiredCapabilities;
|
||||
|
||||
/**
|
||||
* The class manages the capabilities in ChromeDriver.
|
||||
*
|
||||
* @see https://sites.google.com/a/chromium.org/chromedriver/capabilities
|
||||
*/
|
||||
class ChromeOptions
|
||||
{
|
||||
/**
|
||||
* The key of chrome options in desired capabilities.
|
||||
*/
|
||||
const CAPABILITY = 'chromeOptions';
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $arguments = [];
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $binary = '';
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $extensions = [];
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $experimentalOptions = [];
|
||||
|
||||
/**
|
||||
* Sets the path of the Chrome executable. The path should be either absolute
|
||||
* or relative to the location running ChromeDriver server.
|
||||
*
|
||||
* @param string $path
|
||||
* @return ChromeOptions
|
||||
*/
|
||||
public function setBinary($path)
|
||||
{
|
||||
$this->binary = $path;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $arguments
|
||||
* @return ChromeOptions
|
||||
*/
|
||||
public function addArguments(array $arguments)
|
||||
{
|
||||
$this->arguments = array_merge($this->arguments, $arguments);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a Chrome extension to install on browser startup. Each path should be
|
||||
* a packed Chrome extension.
|
||||
*
|
||||
* @param array $paths
|
||||
* @return ChromeOptions
|
||||
*/
|
||||
public function addExtensions(array $paths)
|
||||
{
|
||||
foreach ($paths as $path) {
|
||||
$this->addExtension($path);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $encoded_extensions An array of base64 encoded of the extensions.
|
||||
* @return ChromeOptions
|
||||
*/
|
||||
public function addEncodedExtensions(array $encoded_extensions)
|
||||
{
|
||||
foreach ($encoded_extensions as $encoded_extension) {
|
||||
$this->addEncodedExtension($encoded_extension);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an experimental option which has not exposed officially.
|
||||
*
|
||||
* @param string $name
|
||||
* @param mixed $value
|
||||
* @return ChromeOptions
|
||||
*/
|
||||
public function setExperimentalOption($name, $value)
|
||||
{
|
||||
$this->experimentalOptions[$name] = $value;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DesiredCapabilities The DesiredCapabilities for Chrome with this options.
|
||||
*/
|
||||
public function toCapabilities()
|
||||
{
|
||||
$capabilities = DesiredCapabilities::chrome();
|
||||
$capabilities->setCapability(self::CAPABILITY, $this);
|
||||
|
||||
return $capabilities;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
$options = $this->experimentalOptions;
|
||||
|
||||
// The selenium server expects a 'dictionary' instead of a 'list' when
|
||||
// reading the chrome option. However, an empty array in PHP will be
|
||||
// converted to a 'list' instead of a 'dictionary'. To fix it, we always
|
||||
// set the 'binary' to avoid returning an empty array.
|
||||
$options['binary'] = $this->binary;
|
||||
|
||||
if ($this->arguments) {
|
||||
$options['args'] = $this->arguments;
|
||||
}
|
||||
|
||||
if ($this->extensions) {
|
||||
$options['extensions'] = $this->extensions;
|
||||
}
|
||||
|
||||
return $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a Chrome extension to install on browser startup. Each path should be a
|
||||
* packed Chrome extension.
|
||||
*
|
||||
* @param string $path
|
||||
* @return ChromeOptions
|
||||
*/
|
||||
private function addExtension($path)
|
||||
{
|
||||
$this->addEncodedExtension(base64_encode(file_get_contents($path)));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $encoded_extension Base64 encoded of the extension.
|
||||
* @return ChromeOptions
|
||||
*/
|
||||
private function addEncodedExtension($encoded_extension)
|
||||
{
|
||||
$this->extensions[] = $encoded_extension;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user