| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | <?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\Interactions\Internal;use Facebook\WebDriver\Internal\WebDriverLocatable;use Facebook\WebDriver\WebDriverKeyboard;use Facebook\WebDriver\WebDriverMouse;/** * Base class for all keyboard-related actions. */abstract class WebDriverKeysRelatedAction{    /**     * @var WebDriverKeyboard     */    protected $keyboard;    /**     * @var WebDriverMouse     */    protected $mouse;    /**     * @var WebDriverLocatable|null     */    protected $locationProvider;    /**     * @param WebDriverKeyboard $keyboard     * @param WebDriverMouse $mouse     * @param WebDriverLocatable $location_provider     */    public function __construct(        WebDriverKeyboard $keyboard,        WebDriverMouse $mouse,        WebDriverLocatable $location_provider = null    ) {        $this->keyboard = $keyboard;        $this->mouse = $mouse;        $this->locationProvider = $location_provider;    }    protected function focusOnElement()    {        if ($this->locationProvider) {            $this->mouse->click($this->locationProvider->getCoordinates());        }    }}
 |