/**
  * Returns element instance.
  *
  * @return IElement
  */
 public function getObject()
 {
     if (!is_object($this->object)) {
         $web_element = WebElement::fromNodeElement($this->locateElement());
         $this->object = new $this->className($this->getName(), $web_element);
         $this->object->setContainer($this->getContainer());
     }
     return $this->object;
 }
Beispiel #2
0
 /**
  * Create AbstractTypifiedElement from a given NodeElements.
  *
  * @param array|NodeElement[] $node_elements Node Elements.
  *
  * @return ITypifiedElement
  * @throws FormException When unable to create typified element.
  */
 public function typify(array $node_elements)
 {
     $node_element = $node_elements[0];
     $tag_name = $node_element->getTagName();
     if ($tag_name == 'input') {
         $input_type = $node_element->getAttribute('type');
         if ($input_type == self::CHECKBOX_INPUT) {
             return Checkbox::fromNodeElement($node_element);
         } elseif ($input_type == self::RADIO_INPUT) {
             return RadioGroup::fromNodeElements($node_elements);
         } elseif ($input_type == self::FILE_INPUT) {
             return FileInput::fromNodeElement($node_element);
         } else {
             /*if ( is_null($input_type) || ($input_type == self::TEXT_INPUT) || ($input_type == self::PASSWORD_INPUT) ) {*/
             return TextInput::fromNodeElement($node_element);
         }
     } elseif ($tag_name == 'select') {
         return Select::fromNodeElement($node_element);
     } elseif ($tag_name == 'textarea') {
         return TextInput::fromNodeElement($node_element);
     }
     throw new FormException('Unable create typified element for ' . (string) WebElement::fromNodeElement($node_element), FormException::TYPE_UNKNOWN_FIELD);
 }
 /**
  * Creates Element instance based on existing NodeElement instance.
  *
  * @param NodeElement  $node_element Node element.
  * @param IPageFactory $page_factory Page factory.
  *
  * @return static
  */
 public static function fromNodeElement(NodeElement $node_element, IPageFactory $page_factory = null)
 {
     $wrapped_element = WebElement::fromNodeElement($node_element);
     return new static($wrapped_element);
 }