Mercurial > hg > cmmr2012-drupal-site
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 } |