1<?php
2
3namespace Facebook\WebDriver;
4
5use Facebook\WebDriver\Exception\WebDriverException;
6use Facebook\WebDriver\Support\Events\EventFiringWebDriver;
7use Facebook\WebDriver\Support\Events\EventFiringWebElement;
8
9interface WebDriverEventListener
10{
11    /**
12     * @param string $url
13     * @param EventFiringWebDriver $driver
14     */
15    public function beforeNavigateTo($url, EventFiringWebDriver $driver);
16
17    /**
18     * @param string $url
19     * @param EventFiringWebDriver $driver
20     */
21    public function afterNavigateTo($url, EventFiringWebDriver $driver);
22
23    /**
24     * @param EventFiringWebDriver $driver
25     */
26    public function beforeNavigateBack(EventFiringWebDriver $driver);
27
28    /**
29     * @param EventFiringWebDriver $driver
30     */
31    public function afterNavigateBack(EventFiringWebDriver $driver);
32
33    /**
34     * @param EventFiringWebDriver $driver
35     */
36    public function beforeNavigateForward(EventFiringWebDriver $driver);
37
38    /**
39     * @param EventFiringWebDriver $driver
40     */
41    public function afterNavigateForward(EventFiringWebDriver $driver);
42
43    /**
44     * @param WebDriverBy $by
45     * @param EventFiringWebElement|null $element
46     * @param EventFiringWebDriver $driver
47     */
48    public function beforeFindBy(WebDriverBy $by, $element, EventFiringWebDriver $driver);
49
50    /**
51     * @param WebDriverBy $by
52     * @param EventFiringWebElement|null $element
53     * @param EventFiringWebDriver $driver
54     */
55    public function afterFindBy(WebDriverBy $by, $element, EventFiringWebDriver $driver);
56
57    /**
58     * @param string $script
59     * @param EventFiringWebDriver $driver
60     */
61    public function beforeScript($script, EventFiringWebDriver $driver);
62
63    /**
64     * @param string $script
65     * @param EventFiringWebDriver $driver
66     */
67    public function afterScript($script, EventFiringWebDriver $driver);
68
69    /**
70     * @param EventFiringWebElement $element
71     */
72    public function beforeClickOn(EventFiringWebElement $element);
73
74    /**
75     * @param EventFiringWebElement $element
76     */
77    public function afterClickOn(EventFiringWebElement $element);
78
79    /**
80     * @param EventFiringWebElement $element
81     */
82    public function beforeChangeValueOf(EventFiringWebElement $element);
83
84    /**
85     * @param EventFiringWebElement $element
86     */
87    public function afterChangeValueOf(EventFiringWebElement $element);
88
89    /**
90     * @param WebDriverException $exception
91     * @param EventFiringWebDriver $driver
92     */
93    public function onException(WebDriverException $exception, EventFiringWebDriver $driver = null);
94}
95