annotate vendor/jcalderonzumba/gastonjs/src/Browser/Browser.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
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 }