1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace Facebook\WebDriver; 4*04fd306cSNickeau 5*04fd306cSNickeauuse Facebook\WebDriver\Interactions\Touch\WebDriverTouchScreen; 6*04fd306cSNickeau 7*04fd306cSNickeau/** 8*04fd306cSNickeau * The interface for WebDriver. 9*04fd306cSNickeau */ 10*04fd306cSNickeauinterface WebDriver extends WebDriverSearchContext 11*04fd306cSNickeau{ 12*04fd306cSNickeau /** 13*04fd306cSNickeau * Close the current window. 14*04fd306cSNickeau * 15*04fd306cSNickeau * @return WebDriver The current instance. 16*04fd306cSNickeau */ 17*04fd306cSNickeau public function close(); 18*04fd306cSNickeau 19*04fd306cSNickeau /** 20*04fd306cSNickeau * Load a new web page in the current browser window. 21*04fd306cSNickeau * 22*04fd306cSNickeau * @param string $url 23*04fd306cSNickeau * @return WebDriver The current instance. 24*04fd306cSNickeau */ 25*04fd306cSNickeau public function get($url); 26*04fd306cSNickeau 27*04fd306cSNickeau /** 28*04fd306cSNickeau * Get a string representing the current URL that the browser is looking at. 29*04fd306cSNickeau * 30*04fd306cSNickeau * @return string The current URL. 31*04fd306cSNickeau */ 32*04fd306cSNickeau public function getCurrentURL(); 33*04fd306cSNickeau 34*04fd306cSNickeau /** 35*04fd306cSNickeau * Get the source of the last loaded page. 36*04fd306cSNickeau * 37*04fd306cSNickeau * @return string The current page source. 38*04fd306cSNickeau */ 39*04fd306cSNickeau public function getPageSource(); 40*04fd306cSNickeau 41*04fd306cSNickeau /** 42*04fd306cSNickeau * Get the title of the current page. 43*04fd306cSNickeau * 44*04fd306cSNickeau * @return string The title of the current page. 45*04fd306cSNickeau */ 46*04fd306cSNickeau public function getTitle(); 47*04fd306cSNickeau 48*04fd306cSNickeau /** 49*04fd306cSNickeau * Return an opaque handle to this window that uniquely identifies it within 50*04fd306cSNickeau * this driver instance. 51*04fd306cSNickeau * 52*04fd306cSNickeau * @return string The current window handle. 53*04fd306cSNickeau */ 54*04fd306cSNickeau public function getWindowHandle(); 55*04fd306cSNickeau 56*04fd306cSNickeau /** 57*04fd306cSNickeau * Get all window handles available to the current session. 58*04fd306cSNickeau * 59*04fd306cSNickeau * @return array An array of string containing all available window handles. 60*04fd306cSNickeau */ 61*04fd306cSNickeau public function getWindowHandles(); 62*04fd306cSNickeau 63*04fd306cSNickeau /** 64*04fd306cSNickeau * Quits this driver, closing every associated window. 65*04fd306cSNickeau */ 66*04fd306cSNickeau public function quit(); 67*04fd306cSNickeau 68*04fd306cSNickeau /** 69*04fd306cSNickeau * Take a screenshot of the current page. 70*04fd306cSNickeau * 71*04fd306cSNickeau * @param string $save_as The path of the screenshot to be saved. 72*04fd306cSNickeau * @return string The screenshot in PNG format. 73*04fd306cSNickeau */ 74*04fd306cSNickeau public function takeScreenshot($save_as = null); 75*04fd306cSNickeau 76*04fd306cSNickeau /** 77*04fd306cSNickeau * Construct a new WebDriverWait by the current WebDriver instance. 78*04fd306cSNickeau * Sample usage: 79*04fd306cSNickeau * 80*04fd306cSNickeau * $driver->wait(20, 1000)->until( 81*04fd306cSNickeau * WebDriverExpectedCondition::titleIs('WebDriver Page') 82*04fd306cSNickeau * ); 83*04fd306cSNickeau * 84*04fd306cSNickeau * @param int $timeout_in_second 85*04fd306cSNickeau * @param int $interval_in_millisecond 86*04fd306cSNickeau * @return WebDriverWait 87*04fd306cSNickeau */ 88*04fd306cSNickeau public function wait( 89*04fd306cSNickeau $timeout_in_second = 30, 90*04fd306cSNickeau $interval_in_millisecond = 250 91*04fd306cSNickeau ); 92*04fd306cSNickeau 93*04fd306cSNickeau /** 94*04fd306cSNickeau * An abstraction for managing stuff you would do in a browser menu. For 95*04fd306cSNickeau * example, adding and deleting cookies. 96*04fd306cSNickeau * 97*04fd306cSNickeau * @return WebDriverOptions 98*04fd306cSNickeau */ 99*04fd306cSNickeau public function manage(); 100*04fd306cSNickeau 101*04fd306cSNickeau /** 102*04fd306cSNickeau * An abstraction allowing the driver to access the browser's history and to 103*04fd306cSNickeau * navigate to a given URL. 104*04fd306cSNickeau * 105*04fd306cSNickeau * @return WebDriverNavigationInterface 106*04fd306cSNickeau * @see WebDriverNavigation 107*04fd306cSNickeau */ 108*04fd306cSNickeau public function navigate(); 109*04fd306cSNickeau 110*04fd306cSNickeau /** 111*04fd306cSNickeau * Switch to a different window or frame. 112*04fd306cSNickeau * 113*04fd306cSNickeau * @return WebDriverTargetLocator 114*04fd306cSNickeau * @see WebDriverTargetLocator 115*04fd306cSNickeau */ 116*04fd306cSNickeau public function switchTo(); 117*04fd306cSNickeau 118*04fd306cSNickeau // TODO: Add in next major release (BC) 119*04fd306cSNickeau ///** 120*04fd306cSNickeau // * @return WebDriverTouchScreen 121*04fd306cSNickeau // */ 122*04fd306cSNickeau //public function getTouch(); 123*04fd306cSNickeau 124*04fd306cSNickeau /** 125*04fd306cSNickeau * @param string $name 126*04fd306cSNickeau * @param array $params 127*04fd306cSNickeau * @return mixed 128*04fd306cSNickeau */ 129*04fd306cSNickeau public function execute($name, $params); 130*04fd306cSNickeau 131*04fd306cSNickeau // TODO: Add in next major release (BC) 132*04fd306cSNickeau ///** 133*04fd306cSNickeau // * Execute custom commands on remote end. 134*04fd306cSNickeau // * For example vendor-specific commands or other commands not implemented by php-webdriver. 135*04fd306cSNickeau // * 136*04fd306cSNickeau // * @see https://github.com/php-webdriver/php-webdriver/wiki/Custom-commands 137*04fd306cSNickeau // * @param string $endpointUrl 138*04fd306cSNickeau // * @param string $method 139*04fd306cSNickeau // * @param array $params 140*04fd306cSNickeau // * @return mixed|null 141*04fd306cSNickeau // */ 142*04fd306cSNickeau //public function executeCustomCommand($endpointUrl, $method = 'GET', $params = []); 143*04fd306cSNickeau} 144