xref: /plugin/combo/vendor/php-webdriver/webdriver/lib/WebDriver.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
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