public function testFocus() { $node = new NodeElement('some-element', $this->session); $this->driver->expects($this->once())->method('focus')->with('some-element'); $node->focus(); }
/** * @param NodeElement $element * @param string $script * * @example * $this->executeJsOnElement($this->element('*', 'Meta tags'), 'return jQuery({{ELEMENT}}).text();'); * $this->executeJsOnElement($this->element('*', '#menu'), '{{ELEMENT}}.focus();'); * * @throws \Exception * * @return mixed */ public function executeJsOnElement(NodeElement $element, $script) { $session = $this->getWebDriverSession(); // We need to trigger something with "withSyn" method, because, otherwise an element won't be found. $element->focus(); $this->processJavaScript($script)->debug([$script]); return $session->execute(['script' => str_replace('{{ELEMENT}}', 'arguments[0]', $script), 'args' => [['ELEMENT' => $session->element('xpath', $element->getXpath())->getID()]]]); }