Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Zumba\GastonJS\Browser;
|
Chris@0
|
4
|
Chris@0
|
5 /**
|
Chris@0
|
6 * Class Browser
|
Chris@0
|
7 * @package Zumba\GastonJS
|
Chris@0
|
8 */
|
Chris@0
|
9 class Browser extends BrowserBase {
|
Chris@0
|
10
|
Chris@0
|
11 use BrowserAuthenticationTrait;
|
Chris@0
|
12 use BrowserConfigurationTrait;
|
Chris@0
|
13 use BrowserCookieTrait;
|
Chris@0
|
14 use BrowserFileTrait;
|
Chris@0
|
15 use BrowserFrameTrait;
|
Chris@0
|
16 use BrowserHeadersTrait;
|
Chris@0
|
17 use BrowserMouseEventTrait;
|
Chris@0
|
18 use BrowserNavigateTrait;
|
Chris@0
|
19 use BrowserNetworkTrait;
|
Chris@0
|
20 use BrowserPageElementTrait;
|
Chris@0
|
21 use BrowserPageTrait;
|
Chris@0
|
22 use BrowserRenderTrait;
|
Chris@0
|
23 use BrowserScriptTrait;
|
Chris@0
|
24 use BrowserWindowTrait;
|
Chris@0
|
25
|
Chris@0
|
26 /**
|
Chris@0
|
27 * @param string $phantomJSHost
|
Chris@0
|
28 * @param mixed $logger
|
Chris@0
|
29 */
|
Chris@0
|
30 public function __construct($phantomJSHost, $logger = null) {
|
Chris@0
|
31 $this->phantomJSHost = $phantomJSHost;
|
Chris@0
|
32 $this->logger = $logger;
|
Chris@0
|
33 $this->debug = false;
|
Chris@0
|
34 $this->createApiClient();
|
Chris@0
|
35 }
|
Chris@0
|
36
|
Chris@0
|
37 /**
|
Chris@0
|
38 * Returns the value of a given element in a page
|
Chris@0
|
39 * @param $pageId
|
Chris@0
|
40 * @param $elementId
|
Chris@0
|
41 * @return mixed
|
Chris@0
|
42 */
|
Chris@0
|
43 public function value($pageId, $elementId) {
|
Chris@0
|
44 return $this->command('value', $pageId, $elementId);
|
Chris@0
|
45 }
|
Chris@0
|
46
|
Chris@0
|
47 /**
|
Chris@0
|
48 * Sets a value to a given element in a given page
|
Chris@0
|
49 * @param $pageId
|
Chris@0
|
50 * @param $elementId
|
Chris@0
|
51 * @param $value
|
Chris@0
|
52 * @return mixed
|
Chris@0
|
53 */
|
Chris@0
|
54 public function set($pageId, $elementId, $value) {
|
Chris@0
|
55 return $this->command('set', $pageId, $elementId, $value);
|
Chris@0
|
56 }
|
Chris@0
|
57
|
Chris@0
|
58 /**
|
Chris@0
|
59 * Tells whether an element on a page is visible or not
|
Chris@0
|
60 * @param $pageId
|
Chris@0
|
61 * @param $elementId
|
Chris@0
|
62 * @return bool
|
Chris@0
|
63 */
|
Chris@0
|
64 public function isVisible($pageId, $elementId) {
|
Chris@0
|
65 return $this->command('visible', $pageId, $elementId);
|
Chris@0
|
66 }
|
Chris@0
|
67
|
Chris@0
|
68 /**
|
Chris@0
|
69 * @param $pageId
|
Chris@0
|
70 * @param $elementId
|
Chris@0
|
71 * @return bool
|
Chris@0
|
72 */
|
Chris@0
|
73 public function isDisabled($pageId, $elementId) {
|
Chris@0
|
74 return $this->command('disabled', $pageId, $elementId);
|
Chris@0
|
75 }
|
Chris@0
|
76
|
Chris@0
|
77 /**
|
Chris@0
|
78 * Drag an element to a another in a given page
|
Chris@0
|
79 * @param $pageId
|
Chris@0
|
80 * @param $fromId
|
Chris@0
|
81 * @param $toId
|
Chris@0
|
82 * @return mixed
|
Chris@0
|
83 */
|
Chris@0
|
84 public function drag($pageId, $fromId, $toId) {
|
Chris@0
|
85 return $this->command('drag', $pageId, $fromId, $toId);
|
Chris@0
|
86 }
|
Chris@0
|
87
|
Chris@0
|
88 /**
|
Chris@0
|
89 * Selects a value in the given element and page
|
Chris@0
|
90 * @param $pageId
|
Chris@0
|
91 * @param $elementId
|
Chris@0
|
92 * @param $value
|
Chris@0
|
93 * @return mixed
|
Chris@0
|
94 */
|
Chris@0
|
95 public function select($pageId, $elementId, $value) {
|
Chris@0
|
96 return $this->command('select', $pageId, $elementId, $value);
|
Chris@0
|
97 }
|
Chris@0
|
98
|
Chris@0
|
99 /**
|
Chris@0
|
100 * Triggers an event to a given element on the given page
|
Chris@0
|
101 * @param $pageId
|
Chris@0
|
102 * @param $elementId
|
Chris@0
|
103 * @param $event
|
Chris@0
|
104 * @return mixed
|
Chris@0
|
105 */
|
Chris@0
|
106 public function trigger($pageId, $elementId, $event) {
|
Chris@0
|
107 return $this->command('trigger', $pageId, $elementId, $event);
|
Chris@0
|
108 }
|
Chris@0
|
109
|
Chris@0
|
110 /**
|
Chris@0
|
111 * TODO: not sure what this does, needs to do normalizeKeys
|
Chris@0
|
112 * @param int $pageId
|
Chris@0
|
113 * @param int $elementId
|
Chris@0
|
114 * @param array $keys
|
Chris@0
|
115 * @return mixed
|
Chris@0
|
116 */
|
Chris@0
|
117 public function sendKeys($pageId, $elementId, $keys) {
|
Chris@0
|
118 return $this->command('send_keys', $pageId, $elementId, $this->normalizeKeys($keys));
|
Chris@0
|
119 }
|
Chris@0
|
120 }
|