3 namespace Zumba\GastonJS\Browser;
7 * @package Zumba\GastonJS
9 class Browser extends BrowserBase {
11 use BrowserAuthenticationTrait;
12 use BrowserConfigurationTrait;
13 use BrowserCookieTrait;
15 use BrowserFrameTrait;
16 use BrowserHeadersTrait;
17 use BrowserMouseEventTrait;
18 use BrowserNavigateTrait;
19 use BrowserNetworkTrait;
20 use BrowserPageElementTrait;
22 use BrowserRenderTrait;
23 use BrowserScriptTrait;
24 use BrowserWindowTrait;
27 * @param string $phantomJSHost
28 * @param mixed $logger
30 public function __construct($phantomJSHost, $logger = null) {
31 $this->phantomJSHost = $phantomJSHost;
32 $this->logger = $logger;
34 $this->createApiClient();
38 * Returns the value of a given element in a page
43 public function value($pageId, $elementId) {
44 return $this->command('value', $pageId, $elementId);
48 * Sets a value to a given element in a given page
54 public function set($pageId, $elementId, $value) {
55 return $this->command('set', $pageId, $elementId, $value);
59 * Tells whether an element on a page is visible or not
64 public function isVisible($pageId, $elementId) {
65 return $this->command('visible', $pageId, $elementId);
73 public function isDisabled($pageId, $elementId) {
74 return $this->command('disabled', $pageId, $elementId);
78 * Drag an element to a another in a given page
84 public function drag($pageId, $fromId, $toId) {
85 return $this->command('drag', $pageId, $fromId, $toId);
89 * Selects a value in the given element and page
95 public function select($pageId, $elementId, $value) {
96 return $this->command('select', $pageId, $elementId, $value);
100 * Triggers an event to a given element on the given page
106 public function trigger($pageId, $elementId, $event) {
107 return $this->command('trigger', $pageId, $elementId, $event);
111 * TODO: not sure what this does, needs to do normalizeKeys
113 * @param int $elementId
117 public function sendKeys($pageId, $elementId, $keys) {
118 return $this->command('send_keys', $pageId, $elementId, $this->normalizeKeys($keys));