public function execute(RemoteWebDriver $webDriver) { $webDriver->getUri($this->uri); $this->hasRun = true; foreach ($this->steps as $index => $step) { try { $step->execute($webDriver); } catch (\Exception $e) { $this->failedAt = $index; throw new UseCaseFailed('', 0, $e); } } }
public function find(RemoteWebDriver $webDriver) { switch ($this->type) { case self::ID: return $webDriver->findElement(WebDriverBy::id($this->value)); case self::CSS_SELECTOR: return $webDriver->findElement(WebDriverBy::cssSelector($this->value)); case self::LINK_TEXT: return $webDriver->findElement(WebDriverBy::linkText($this->value)); default: throw new \LogicException('Invalid element search type: ' . $this->type); } }