class WebDriver
WebDriver class
@package WebDriver
@method array status() Returns information about whether a remote end is in a state in which it can create new sessions.
Hierarchy
- class \WebDriver\AbstractWebDriver
- class \WebDriver\WebDriver extends \WebDriver\AbstractWebDriver implements \WebDriver\WebDriverInterface
Expanded class hierarchy of WebDriver
1 file declares its use of WebDriver
- Selenium2Driver.php in vendor/
lullabot/ mink-selenium2-driver/ src/ Selenium2Driver.php
File
-
vendor/
lullabot/ php-webdriver/ lib/ WebDriver/ WebDriver.php, line 21
Namespace
WebDriverView source
class WebDriver extends AbstractWebDriver implements WebDriverInterface {
/**
* @var array
*/
private $capabilities;
/**
* {@inheritdoc}
*/
protected function methods() {
return array(
'status' => 'GET',
);
}
/**
* {@inheritdoc}
*/
public function session($browserName = Browser::FIREFOX, $desiredCapabilities = array(), $requiredCapabilities = array()) {
// Filter capabilities.
$filterCapabilites = function ($key) {
// See https://github.com/jlipps/simple-wd-spec#capabilities
if (str_contains($key, ':')) {
return true;
}
return in_array($key, [
'browserName',
'browserVersion',
'platformName',
'acceptInsecureCerts',
'pageLoadStrategy',
'proxy',
'setWindowRect',
'timeouts',
'timeouts',
]);
};
$w3c_mode = true;
if (isset($desiredCapabilities['w3c']) && $desiredCapabilities['w3c'] === false || isset($desiredCapabilities['goog:chromeOptions']['w3c']) && $desiredCapabilities['goog:chromeOptions']['w3c'] === false) {
$w3c_mode = false;
}
if ($w3c_mode) {
$requiredCapabilities = array_filter($requiredCapabilities, $filterCapabilites, ARRAY_FILTER_USE_KEY);
$desiredCapabilities = array_filter($desiredCapabilities, $filterCapabilites, ARRAY_FILTER_USE_KEY);
}
$firstMatch = $desiredCapabilities ?: array();
$firstMatch['browserName'] = $browserName;
$parameters = array(
'capabilities' => array(
'firstMatch' => [
$firstMatch,
],
),
);
if (is_array($requiredCapabilities) && count($requiredCapabilities)) {
$parameters['capabilities']['alwaysMatch'] = $requiredCapabilities;
}
if (!$w3c_mode) {
// fallback to legacy JSON Wire Protocol
$capabilities = $desiredCapabilities ?: array();
$capabilities[Capability::BROWSER_NAME] = $browserName;
$parameters = array(
'desiredCapabilities' => $capabilities,
);
if (is_array($requiredCapabilities) && count($requiredCapabilities)) {
$parameters['requiredCapabilities'] = $requiredCapabilities;
}
}
$result = $this->curl('POST', '/session', $parameters, array(
CURLOPT_FOLLOWLOCATION => true,
));
$this->capabilities = isset($result['value']['capabilities']) ? $result['value']['capabilities'] : null;
$session = new Session($result['sessionUrl'], $this->capabilities);
return $session;
}
/**
* Get Sessions: /sessions (GET)
* Get list of currently active sessions
*
* @deprecated
*
* @return array an array of \WebDriver\Session objects
*/
public function sessions() {
$result = $this->curl('GET', '/sessions');
$sessions = array();
foreach ($result['value'] as $session) {
$session = new Session($this->url . '/session/' . $session['id'], $this->capabilities);
$sessions[] = $session;
}
return $sessions;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
AbstractWebDriver::$curlService | private | property | Curl service | ||
AbstractWebDriver::$transientOptions | private | property | Transient options | ||
AbstractWebDriver::$url | protected | property | URL | ||
AbstractWebDriver::assertSerializable | private | function | Sanity check | ||
AbstractWebDriver::curl | protected | function | Curl request to webdriver server. | ||
AbstractWebDriver::getCurlService | public | function | Get curl service | ||
AbstractWebDriver::getRequestMethod | private | function | Get default HTTP request method for a given WebDriver command | ||
AbstractWebDriver::getTransientOptions | public | function | |||
AbstractWebDriver::getURL | public | function | Returns URL to Selenium server | ||
AbstractWebDriver::obsoleteMethods | protected | function | Return array of obsolete method names and corresponding HTTP request methods | 4 | |
AbstractWebDriver::offsetGet | private | function | Extract value from result | ||
AbstractWebDriver::setCurlService | public | function | Set curl service | ||
AbstractWebDriver::setTransientOptions | public | function | Set transient options | ||
AbstractWebDriver::__call | public | function | Magic method that maps calls to class methods to execute WebDriver commands | 1 | |
AbstractWebDriver::__construct | public | function | Constructor | 3 | |
AbstractWebDriver::__toString | public | function | Magic method which returns URL to Selenium server | ||
WebDriver::$capabilities | private | property | |||
WebDriver::methods | protected | function | Return array of supported method names and corresponding HTTP request methods | Overrides AbstractWebDriver::methods | |
WebDriver::session | public | function | New Session: /session (POST) Get session object for chaining |
Overrides WebDriverInterface::session | |
WebDriver::sessions | public | function | Get Sessions: /sessions (GET) Get list of currently active sessions |