Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. TraversableElement.php

class TraversableElement

Traversable element.

@author Konstantin Kudryashov <ever.zet@gmail.com>

Hierarchy

  • class \Behat\Mink\Element\Element implements \Behat\Mink\Element\ElementInterface
    • class \Behat\Mink\Element\TraversableElement extends \Behat\Mink\Element\Element

Expanded class hierarchy of TraversableElement

1 file declares its use of TraversableElement
WebAssert.php in vendor/behat/mink/src/WebAssert.php

File

vendor/behat/mink/src/Element/TraversableElement.php, line 20

Namespace

Behat\Mink\Element
View source
abstract class TraversableElement extends Element {
    
    /**
     * Finds element by its id.
     *
     * @param string $id element id
     *
     * @return NodeElement|null
     */
    public function findById(string $id) {
        return $this->find('named', array(
            'id',
            $id,
        ));
    }
    
    /**
     * Checks whether element has a link with specified locator.
     *
     * @param string $locator link id, title, text or image alt
     *
     * @return bool
     */
    public function hasLink(string $locator) {
        return null !== $this->findLink($locator);
    }
    
    /**
     * Finds link with specified locator.
     *
     * @param string $locator link id, title, text or image alt
     *
     * @return NodeElement|null
     */
    public function findLink(string $locator) {
        return $this->find('named', array(
            'link',
            $locator,
        ));
    }
    
    /**
     * Clicks link with specified locator.
     *
     * @param string $locator link id, title, text or image alt
     *
     * @return void
     *
     * @throws ElementNotFoundException
     */
    public function clickLink(string $locator) {
        $link = $this->findLink($locator);
        if (null === $link) {
            throw new ElementNotFoundException($this->getDriver(), 'link', 'id|title|alt|text', $locator);
        }
        $link->click();
    }
    
    /**
     * Checks whether element has a button (input[type=submit|image|button|reset], button) with specified locator.
     *
     * @param string $locator button id, value or alt
     *
     * @return bool
     */
    public function hasButton(string $locator) {
        return null !== $this->findButton($locator);
    }
    
    /**
     * Finds button (input[type=submit|image|button|reset], button) with specified locator.
     *
     * @param string $locator button id, value or alt
     *
     * @return NodeElement|null
     */
    public function findButton(string $locator) {
        return $this->find('named', array(
            'button',
            $locator,
        ));
    }
    
    /**
     * Presses button (input[type=submit|image|button|reset], button) with specified locator.
     *
     * @param string $locator button id, value or alt
     *
     * @return void
     *
     * @throws ElementNotFoundException
     */
    public function pressButton(string $locator) {
        $button = $this->findButton($locator);
        if (null === $button) {
            throw new ElementNotFoundException($this->getDriver(), 'button', 'id|name|title|alt|value', $locator);
        }
        $button->press();
    }
    
    /**
     * Checks whether element has a field (input, textarea, select) with specified locator.
     *
     * @param string $locator input id, name or label
     *
     * @return bool
     */
    public function hasField(string $locator) {
        return null !== $this->findField($locator);
    }
    
    /**
     * Finds field (input, textarea, select) with specified locator.
     *
     * @param string $locator input id, name or label
     *
     * @return NodeElement|null
     */
    public function findField(string $locator) {
        return $this->find('named', array(
            'field',
            $locator,
        ));
    }
    
    /**
     * Fills in field (input, textarea, select) with specified locator.
     *
     * @param string            $locator input id, name or label
     * @param string|bool|array $value   value
     *
     * @return void
     *
     * @throws ElementNotFoundException
     *
     * @see NodeElement::setValue
     */
    public function fillField(string $locator, $value) {
        $field = $this->findField($locator);
        if (null === $field) {
            throw new ElementNotFoundException($this->getDriver(), 'form field', 'id|name|label|value|placeholder', $locator);
        }
        $field->setValue($value);
    }
    
    /**
     * Checks whether element has a checkbox with specified locator, which is checked.
     *
     * @param string $locator input id, name or label
     *
     * @return bool
     *
     * @see NodeElement::isChecked
     */
    public function hasCheckedField(string $locator) {
        $field = $this->findField($locator);
        return null !== $field && $field->isChecked();
    }
    
    /**
     * Checks whether element has a checkbox with specified locator, which is unchecked.
     *
     * @param string $locator input id, name or label
     *
     * @return bool
     *
     * @see NodeElement::isChecked
     */
    public function hasUncheckedField(string $locator) {
        $field = $this->findField($locator);
        return null !== $field && !$field->isChecked();
    }
    
    /**
     * Checks checkbox with specified locator.
     *
     * @param string $locator input id, name or label
     *
     * @return void
     *
     * @throws ElementNotFoundException
     */
    public function checkField(string $locator) {
        $field = $this->findField($locator);
        if (null === $field) {
            throw new ElementNotFoundException($this->getDriver(), 'form field', 'id|name|label|value', $locator);
        }
        $field->check();
    }
    
    /**
     * Unchecks checkbox with specified locator.
     *
     * @param string $locator input id, name or label
     *
     * @return void
     *
     * @throws ElementNotFoundException
     */
    public function uncheckField(string $locator) {
        $field = $this->findField($locator);
        if (null === $field) {
            throw new ElementNotFoundException($this->getDriver(), 'form field', 'id|name|label|value', $locator);
        }
        $field->uncheck();
    }
    
    /**
     * Checks whether element has a select field with specified locator.
     *
     * @param string $locator select id, name or label
     *
     * @return bool
     */
    public function hasSelect(string $locator) {
        return $this->has('named', array(
            'select',
            $locator,
        ));
    }
    
    /**
     * Selects option from select field with specified locator.
     *
     * @param string $locator  input id, name or label
     * @param string $value    option value
     * @param bool   $multiple select multiple options
     *
     * @return void
     *
     * @throws ElementNotFoundException
     *
     * @see NodeElement::selectOption
     */
    public function selectFieldOption(string $locator, string $value, bool $multiple = false) {
        $field = $this->findField($locator);
        if (null === $field) {
            throw new ElementNotFoundException($this->getDriver(), 'form field', 'id|name|label|value', $locator);
        }
        $field->selectOption($value, $multiple);
    }
    
    /**
     * Checks whether element has a table with specified locator.
     *
     * @param string $locator table id or caption
     *
     * @return bool
     */
    public function hasTable(string $locator) {
        return $this->has('named', array(
            'table',
            $locator,
        ));
    }
    
    /**
     * Attach file to file field with specified locator.
     *
     * @param string $locator input id, name or label
     * @param string $path    path to file
     *
     * @return void
     *
     * @throws ElementNotFoundException
     *
     * @see NodeElement::attachFile
     */
    public function attachFileToField(string $locator, string $path) {
        $field = $this->findField($locator);
        if (null === $field) {
            throw new ElementNotFoundException($this->getDriver(), 'form field', 'id|name|label|value', $locator);
        }
        $field->attachFile($path);
    }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary Overriden Title Overrides
Element::$driver private property Driver.
Element::$elementFinder private property
Element::$session private property
Element::elementNotFound Deprecated protected function Builds an ElementNotFoundException.
Element::find public function Finds first element with specified selector inside the current element. Overrides ElementInterface::find
Element::findAll public function Finds all elements with specified selector inside the current element. Overrides ElementInterface::findAll
Element::getDriver protected function Returns element&#039;s driver.
Element::getHtml public function Returns element inner html. Overrides ElementInterface::getHtml
Element::getOuterHtml public function Returns element outer html.
Element::getSelectorsHandler Deprecated protected function Returns selectors handler.
Element::getSession Deprecated public function Returns element session. Overrides ElementInterface::getSession
Element::getText public function Returns element text (inside tag). Overrides ElementInterface::getText
Element::has public function Checks whether element with specified selector exists inside the current element. Overrides ElementInterface::has
Element::isValid public function Checks if an element still exists in the DOM. Overrides ElementInterface::isValid
Element::waitFor public function Waits for a value to be available and returns it. Overrides ElementInterface::waitFor
Element::__construct public function Initialize element. 1
ElementInterface::getXpath public function Returns XPath for handled element. 2
TraversableElement::attachFileToField public function Attach file to file field with specified locator.
TraversableElement::checkField public function Checks checkbox with specified locator.
TraversableElement::clickLink public function Clicks link with specified locator.
TraversableElement::fillField public function Fills in field (input, textarea, select) with specified locator.
TraversableElement::findButton public function Finds button (input[type=submit|image|button|reset], button) with specified locator.
TraversableElement::findById public function Finds element by its id.
TraversableElement::findField public function Finds field (input, textarea, select) with specified locator.
TraversableElement::findLink public function Finds link with specified locator.
TraversableElement::hasButton public function Checks whether element has a button (input[type=submit|image|button|reset], button) with specified locator.
TraversableElement::hasCheckedField public function Checks whether element has a checkbox with specified locator, which is checked.
TraversableElement::hasField public function Checks whether element has a field (input, textarea, select) with specified locator.
TraversableElement::hasLink public function Checks whether element has a link with specified locator.
TraversableElement::hasSelect public function Checks whether element has a select field with specified locator.
TraversableElement::hasTable public function Checks whether element has a table with specified locator.
TraversableElement::hasUncheckedField public function Checks whether element has a checkbox with specified locator, which is unchecked.
TraversableElement::pressButton public function Presses button (input[type=submit|image|button|reset], button) with specified locator.
TraversableElement::selectFieldOption public function Selects option from select field with specified locator.
TraversableElement::uncheckField public function Unchecks checkbox with specified locator.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal