annotate vendor/jcalderonzumba/mink-phantomjs-driver/src/JavascriptTrait.php @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children 5311817fb629
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Zumba\Mink\Driver;
Chris@0 4
Chris@0 5 use Behat\Mink\Exception\DriverException;
Chris@0 6
Chris@0 7 /**
Chris@0 8 * Class JavascriptTrait
Chris@0 9 * @package Zumba\Mink\Driver
Chris@0 10 */
Chris@0 11 trait JavascriptTrait {
Chris@0 12
Chris@0 13 /**
Chris@0 14 * Executes a script on the browser
Chris@0 15 * @param string $script
Chris@0 16 */
Chris@0 17 public function executeScript($script) {
Chris@0 18 $this->browser->execute($script);
Chris@0 19 }
Chris@0 20
Chris@0 21 /**
Chris@0 22 * Evaluates a script and returns the result
Chris@0 23 * @param string $script
Chris@0 24 * @return mixed
Chris@0 25 */
Chris@0 26 public function evaluateScript($script) {
Chris@0 27 return $this->browser->evaluate($script);
Chris@0 28 }
Chris@0 29
Chris@0 30 /**
Chris@0 31 * Waits some time or until JS condition turns true.
Chris@0 32 *
Chris@0 33 * @param integer $timeout timeout in milliseconds
Chris@0 34 * @param string $condition JS condition
Chris@0 35 * @return boolean
Chris@0 36 * @throws DriverException When the operation cannot be done
Chris@0 37 */
Chris@0 38 public function wait($timeout, $condition) {
Chris@0 39 $start = microtime(true);
Chris@0 40 $end = $start + $timeout / 1000.0;
Chris@0 41 do {
Chris@0 42 $result = $this->browser->evaluate($condition);
Chris@0 43 usleep(100000);
Chris@0 44 } while (microtime(true) < $end && !$result);
Chris@0 45
Chris@0 46 return (bool)$result;
Chris@0 47 }
Chris@0 48
Chris@0 49 }