Chris@0: browser->execute($script); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Evaluates a script and returns the result Chris@0: * @param string $script Chris@0: * @return mixed Chris@0: */ Chris@0: public function evaluateScript($script) { Chris@0: return $this->browser->evaluate($script); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Waits some time or until JS condition turns true. Chris@0: * Chris@0: * @param integer $timeout timeout in milliseconds Chris@0: * @param string $condition JS condition Chris@0: * @return boolean Chris@0: * @throws DriverException When the operation cannot be done Chris@0: */ Chris@0: public function wait($timeout, $condition) { Chris@0: $start = microtime(true); Chris@0: $end = $start + $timeout / 1000.0; Chris@0: do { Chris@0: $result = $this->browser->evaluate($condition); Chris@0: usleep(100000); Chris@0: } while (microtime(true) < $end && !$result); Chris@0: Chris@0: return (bool)$result; Chris@0: } Chris@0: Chris@0: }